簡體   English   中英

Xamarin Studio上iOS Designer中感嘆號的含義

[英]Meaning of exclamation mark in iOS Designer on Xamarin Studio

我正在與iOS Designer一起使用,並且有一個帶有不同視圖的故事板(導航控制器,...)。 幾乎每個視圖的底部右側都有一個紅色的感嘆號。 我收到類似的錯誤

System.NullReferenceException
你調用的對象是空的

如果我轉到相應的代碼行:

public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations ()
{
    return TopViewController.GetSupportedInterfaceOrientations();
}

這是我的CustomNavigationController一部分。 如果我在iOS Designer上設置了類名,則會收到錯誤消息。 我必須在這里添加什么? 構造函數如下所示:

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 Designer中的預覽不再向我顯示正確的顏色。

如果我注釋掉GetSupportedInterfaceOrientations()在我的CustomNavigationController比其他感嘆號已被刪除。 我以為我需要此功能來定義每個視圖控制器的方向。 快速瀏覽表明它似乎有效。

設計時間可以支持什么有限制。 在設計模式下,應將所有動態數據(例如,從服務加載的數據)替換為虛擬數據。 這同樣適用於僅在運行時可用的諸如TopViewController類的運行時對象。

if (Site != null && Site.DesignMode)
{
    // use dummy data for designer surface
}
else
{
    // use live data
}

本文檔對其進行了更詳細的說明:

http://developer.xamarin.com/guides/ios/user_interface/designer/ios_designable_controls_overview/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM