2013-03-25 46 views
1

我正在創建UIView子視圖的自定義UICustomView。我可以在其中創建一個自定義指定的初始化程序,它將要求委託人和數據源。但是,只有當控制消費者以編程方式創建控件時纔會調用此方法。帶筆尖的自定義初始化程序?

但是,我想提供基本的佈局支持,即。應該可以將一個空的UIView放入任何NIB文件中,然後將其在Identity Inspector中的類更改爲UICustomView。以類似的方式,你可以將其他股票蘋果控制到筆尖。

但是,我將如何強制消費者提供委託和數據源?

回答

1

不幸的是,從nib文件中無法使用自定義初始值設定項。最常見的情況是,需要數據源和委託的視圖使用視圖類中的IBOutlet屬性進行連接,或者在呈現視圖之前在視圖控制器中設置其屬性。

如果您希望強制消費者提供代理和數據源,您總是可以在-viewDidLoad方法中放置一個斷言,並確保它們已經連線(並在您處理時處理正確的協議)。

0

正如@ gaige所說,只需將數據源和委託的自定義視圖類中的IBOutlet屬性。您還可以提供指定的初始值設定項,以便在以編程方式創建時設置這些值。如果出口屬性在那裏,您可以像在普通的TableView中一樣在界面生成器中連接它們。

0

我認爲解決您的問題的最常見和最快速的方法是自定義viewDidLoad方法在與視圖關聯的控制器的viewdidload方法中初始化類的屬性。

1

如果我正確理解你的問題,你可以使用initWithCoder:來做你想做的事情。這將被要求從一個xib或故事板出來的意見。

相關問題