我已經創建了一個自定義的UIView,我想在我的iPhone應用程序中的多個不同的視圖控制器上使用。目前,我已經複製了包含來自第一個視圖控制器的nib文件的控件的UIView,將其粘貼到其他視圖控制器中,然後將所有動作連接到每個視圖控制器。這工作正常,但不是我想要使用此自定義視圖的最佳方式。從多個視圖控制器使用自定義UIView
我的自定義視圖非常簡單,它由一些帶有標籤的UIButton組成,並點擊這些按鈕觸發更改視圖控制器視圖上控件內容的操作。
什麼是一個策略來鞏固這個UIView的定義和用法?理想情況下,我只想從視圖控制器的筆尖引用此自定義視圖,並讓視圖控制器響應此自定義視圖中的操作。
編輯:好的,根據J.Biard的建議,我嘗試了以下運氣不多。
我創建了另一個基於UIView的nib文件,其中包含我的可重用視圖和UIView子類.m和.h文件的內容(現在只是一些UIButton對象),然後將nib File的Owner類設置爲我新創建的類名。
然後,我添加了來自J.Biard的大部分代碼(我將rect更改爲50,50,100,100,現在將setDelegate省略了,因爲我現在只是試圖讓它工作,並且我發現[self.view addSubview:view]比[self addSubView:view])工作得更好,直到應用程序啓動時顯示的第一個視圖控制器的viewDidLoad方法結束。
我現在得到的是我的主視圖,裏面有一個黑色方塊。我是否錯過了某個插座,或者在UIView子類的initWithFrame或drawRect中是否需要初始化?
如果您想通過使用Interface Builder來完成最後一部分(而不是在您的控制器中以編程方式設置customView),該怎麼辦?這可能嗎?你會如何做到這一點? – Greg 2011-07-13 20:35:26