【问题标题】:Unable to navigate to a new view controller- NSInvalidArgumentException无法导航到新的视图控制器 - NSInvalidArgumentException
【发布时间】:2015-03-16 09:32:23
【问题描述】:

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

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

我在 Storyboard 中添加了一个视图控制器,Storyboard id 和恢复都设置为 New。 (甚至选择使用情节提要 id 复选框)。

但是,我不断收到错误

Foundation.MonoTouchException:抛出 Objective-C 异常。姓名: NSInvalidArgumentException 原因:Storyboard () 不包含 具有标识符“New”的视图控制器。

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

【问题讨论】:

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


    【解决方案1】:

    为了导航到新的 ViewController,您需要一个设计器文件(我使用 .xib 文件),无论上面是否有控件。您需要给它起一个与您的 ViewController 的名称相似的名称(这样更容易记住)。

    在创建新的ViewController时,你应该使用PushViewController方法,在这个方法的参数中,你应该放置你想要创建的ViewController(push)。

    所以,例如:

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

    然后,在这个 NewViewController 中,在它的构造函数中,你需要将构造函数引用到 .xib 文件,这样它就知道可以在哪里绘制控件了。

    例子:

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

    完成后,您可以按照常规编程。

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

    爱与问候, 比约恩

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-06
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-07
      • 1970-01-01
      • 2013-05-09
      相关资源
      最近更新 更多