我正在使用iOS設計器,並且我有一個帶有不同視圖的故事板(導航控制器,...)。在幾乎每個視圖的底部右側都有一個紅色感嘆號。我得到這樣Xamarin Studio上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);
作爲替代我搬到這個代碼的應用程序委託FinishedLaunching()
:
UINavigationBar.Appearance.TintColor = UIColor.FromRGB (21, 66, 139);
結果是,現在我沒有這個視圖控制器的感嘆號和顏色是所需的。但iOS Designer中的預覽不再顯示正確的顏色。
如果我在CustomNavigationController
中註釋掉GetSupportedInterfaceOrientations()
,則表示其他感嘆號已被刪除。我想我需要這個函數來定義每個視圖控制器的方向。快速查看錶明,它似乎工作。
感謝我不知道的信息。所以我應該在設計模式下添加一個默認方向?這是否也適用於訪問'this.NavigationController'?我不知道爲什麼我無法訪問導航控制器。在iOS設計器中,此視圖上缺少導航欄。 – testing 2014-09-03 14:36:09
現在我試圖使用這種方法,但我仍然在iOS設計器中得到'System.NullReferenceException' ...這裏是代碼'if(Site!= null && Site.DesignMode){UI}返回UIInterfaceOrientationMask.Portrait; } else { return TopViewController.GetSupportedInterfaceOrientations(); }' – testing 2014-09-03 14:47:58
我再次嘗試了一個字符串。我得到了'UIViewControllerHierarchyInconsistency'。這種方法不起作用。 – testing 2014-09-05 08:59:03