【发布时间】:2014-09-02 13:52:13
【问题描述】:
我正在使用 iOS 设计器,我有一个故事板,上面有不同的视图(导航控制器,...)。几乎在每个视图的底部右侧都有一个红色感叹号。我收到类似的错误
System.NullReferenceException
对象引用未设置为对象的实例
如果我转到相应的代码行:
public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations ()
{
return TopViewController.GetSupportedInterfaceOrientations();
}
这是我的CustomNavigationController 的一部分。如果我在 iOS 设计器上设置类名,我会收到错误消息。我必须在这里添加什么?构造函数如下所示:
public CustomNavigationController (IntPtr handle) : base (handle)
{
}
我必须在 AppDelegate 中实例化它吗?
在另一个视图控制器上,我得到了一个类似的异常(使用不同的堆栈),它指向了这一行:
this.NavigationController.NavigationBar.TintColor = UIColor.FromRGB (21, 66, 139);
该应用似乎在模拟器和设备上都能正常运行。
我该如何解决这个问题?
编辑:
我现在删除了视图控制器中的代码:
this.NavigationController.NavigationBar.TintColor = UIColor.FromRGB (21, 66, 139);
作为替换,我将此代码移至 Application Delegate FinishedLaunching():
UINavigationBar.Appearance.TintColor = UIColor.FromRGB (21, 66, 139);
结果是现在我没有这个视图控制器的感叹号,颜色也符合要求。但是 iOS 设计器中的预览不再显示正确的颜色。
如果我在CustomNavigationController 中注释掉GetSupportedInterfaceOrientations(),则其他感叹号已被删除。我想我需要这个函数来定义每个视图控制器的方向。快速浏览一下就知道它似乎有效。
【问题讨论】:
标签: ios xamarin xamarin-studio