无法导航到新的视图控制器 - NSInvalidArgumentException

时间:2015-03-16 09:32:24

标签: c# ios visual-studio-2013 navigation xamarin

我正在visual studio中创建xamarin.IOS应用程序,我想根据情况导航到不同的视图控制器。所以,我添加了导航代码,

var controller = this.Storyboard.InstantiateViewController("New") as UIViewController;
NavigationController.PushViewController(controller, true);

我在故事板中添加了一个视图控制器,其中两个故事板ID和恢复设置为新建。 (即使选择使用故事板ID复选框)。

但是,我一直在收到错误

  

Foundation.MonoTouchException:抛出Objective-C异常。名称:   NSInvalidArgumentException原因:Storyboard()不包含   查看标识符为“新”的控制器。

如何导航到新的视图控制器。???

1 个答案:

答案 0 :(得分:0)

为了导航到一个新的ViewController,你需要一个设计器文件(我使用.xib文件),还有它的控件。你需要给它一个类似于你的ViewController名称的名字(所以它更容易记住)。

在创建新的ViewController时,您应该使用PushViewController方法,并且在此方法的参数中,您应该放置您想要创建的ViewController(推送)。

所以,例如:

public void NewWindow ()
{
    this.NavigationController.PushViewController (new NewViewController(), true);
}

然后,在这个NewViewController中,在它的构造函数中,你需要将构造函数引用到.xib文件,因此它知道它可以在何处绘制控件。

示例:

public partial class NewViewController : UIViewController
{
    public NewViewController () : base ("NewViewController", null)
    {
    }
}

完成后,您可以按照常规编程进行操作。

我希望这会有所帮助。祝你好运!

爱和问候, 的Björn