2011-05-12 50 views
3

我有一個自定義工具欄視圖,我將其存儲在自己的nib文件中。我想在其他筆尖中使用該工具欄。是否有可能在主要的nib文件中只有某種視圖作爲子視圖,並將工具欄nib加載到它中?最好在界面生成器中。在界面生成器中從nib文件加載子視圖

謝謝

回答

2

加載它聽起來好像你在你的筆尖文件的單一視圖,並且希望能夠在不同的地方在您的應用程序加載該視圖的一個實例。

這裏,你會怎樣做:

首先,在筆尖文件,更改文件的所有者類的UIViewController,並設置您的自定義視圖文件的所有者的視圖屬性。

而且,在你想用你的自定義視圖的一個實例的視圖控制器,請執行以下操作:

UIViewController *vc = [[UIViewController alloc] initWithNibName:@"YourCustomNib" bundle:nil]; 
UIView *yourCustomView = vc.view; 
[vc release]; 

我知道,似乎有點哈克,但去年我聽說實際上的一個從筆尖加載單個視圖的「正確」方式。我在nib中使用自定義tableview單元格時使用這種方法。

+0

我的筆尖文件中唯一的事情是一個帶按鈕的工具欄。我製作了視圖控制器的視圖。然後在筆尖我需要包含這個,我有一個空的視圖,我持有一個參考。我如上所述爲視圖控制器分配了筆尖名稱,並將self.toolbar設置爲自定義工具欄的視圖。它沒有出現。這是在viewDidLoad中。 – smokingoyster 2011-05-12 18:47:59

+0

我通過添加[self.view addSubview:yourCustomView]得到了這個工作;到它。這意味着我不能指望框架的Interface Builder。幸運的是,這是一個始終處於0,0的工具欄。所以沒什麼大不了的。 – smokingoyster 2011-05-12 20:41:08

+0

我想我知道你的意思......你不能真正引用另一個筆尖的工具欄視圖。你必須在代碼中插入它。我通常會做同樣的事情:使用帶有正確框架的佔位符視圖,然後在viewController中使用它來定位自定義視圖。 – CharlieMezak 2011-05-13 15:16:02

3

是存在於一個單獨的nib文件中的自定義工具欄?如果是的話,那麼你就可以獨立隨時隨地與

NSArray *arr = [[NSBundle mainBundle] loadNibnamed:@"customToolBarNibName" owner:... options:...]; 

UIView *rootView = [arr objectAtIndex: 0]; 
+0

工具欄內置在單獨的nib文件中。工具欄類是CustomUIToolbar。所有按鈕都連接到網點CustomUIToolbar類。我有一個使用工具欄的任何視圖控制器的委託協議。理想情況下,我希望這是一個Interface Builder插件,它顯然不再受支持。我希望能夠將此工具欄放入「界面」構建器的另一個視圖中,以便跟蹤設計。 – smokingoyster 2011-05-12 18:18:53

+0

這很好,除了某些原因,儘管框架說frame =(0 0; 1024 54);工具欄填充屏幕。這是對象的NSLog輸出。 > – smokingoyster 2011-05-12 19:48:15

相關問題