簡體   English   中英

連接到我的自定義UIViewController的Interface Builder中的UIView構建

[英]UIView build in Interface Builder connected to my custom UIViewController

我試圖以與我使用的方式稍有不同的方式來使用IB,但在處理IB時,我無法使其擴展我使用的常規方法。

與其創建一個新的UIViewController並沒有為我生成視圖XIB以及通過Xcode將所有內容鏈接在一起,我想構建一個小的(320x40px)View XIB並將其鏈接到我現有的ViewController。

我首先在Xcode中創建一個新文件,然后選擇“查看XIB”。 然后,我打開IB並在視圖中添加一些標簽等,然后將“文件所有者”設置為我現有的ViewController。 在我現有的ViewController中,我為標簽等設置了IBOutlets。 我回到IB,並將UILabel連接到“文件所有者”中的出口。

現在,我認為我的viewController中有XIB內部標簽的引用。 這並不是我真正想要的方法,我認為viewController不需要引用視圖中的標簽。

我通常在代碼中的工作方式:

我的ViewController控制一堆完全用代碼制作的UIView,並通過以下方式實例化它們:

UIView *customView = [[CustomView alloc] initWithFrame:aFrame];
[customView setTag:MY_CUSTOM_VIEW];
[customView setDelegate:self];
[self.view addSubView:customView];
[customView release];

之后,我將使用[(UILabel*)[[self.view viewWithTag:MY_CUSTOM_VIEW] myLabel] setText@"Hello, World"];從控制器訪問標簽,按鈕等[(UILabel*)[[self.view viewWithTag:MY_CUSTOM_VIEW] myLabel] setText@"Hello, World"]; 讓我的UIViewController實現customView協議所需的所有方法。

如何使用IB獲得該功能

我是否應該首先構建一個擴展UIView類的MyCustomView類,讓它擁有我的所有IBOutlets,將MyCustomClass設置為文件所有者,然后實例化它,如上所示? 可以將某個視圖用作IB視圖的viewController嗎?如何將動作中繼到“真實” viewController?

我想實現的是在UIViewControllers代碼中實例化和布局幾個UIView,但是可以自由地在IB中設計其中一些UIView。

我可以找到的所有信息都與標准的“使用XIB構建用於視圖的UIViewController”或“如何構建IB組件的庫”有關。

我希望這是有意義的,並感謝您提供的任何幫助:)

您可以在Interface Builder中創建所需的任何視圖結構,然后使用UINib類將其實例化。 一旦創建了UINib對象,它就會從筆尖加載內容並保留它們。 然后,每當發送InstantiateWithOwner instantiateWithOwner:options:消息時,它將實例化xib中包含的對象並返回具有頂級視圖的數組。 然后,您可以將這些視圖添加到視圖層次結構中,並像以編程方式創建的任何其他視圖一樣處理它們。

如果保留UINib對象(例如,作為屬性),則可以一次又一次地實例化內容,這使xib可以像模板一樣使用。

更新:有關iOS 4之前的解決方法,請參閱我最近的問答

暫無
暫無

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

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