2010-08-15 22 views
1

我正在處理我的第一個iOS應用程序。我沒有用標準方式使用接口生成器時遇到問題。我想使用接口生成器來配置和實例化一個按鈕,但不會將它添加到視圖(因爲我想將按鈕添加到導航欄,它是在不同的筆尖中創建的)。使用界面構建器來配置和實例化UI對象(但不顯示它們在視圖中)

我試着簡單地將按鈕(分段控件)添加到界面構建器中的「文檔」中,添加一個插座,並將其添加到viewDidAppear中的self.navigationItem中,但outlet變量在viewDidAppear中爲null: 。

我可以完全編程創建按鈕,但我寧願不。所以,我的問題是:

1)我可以在界面構建器中配置和實例化UI對象,將它們連接到插座,並稍後以編程方式顯示它們?如果是這樣,那麼做到這一點的最好方法是什麼?

2)我可以直接在界面生成器中將我的按鈕添加到另一個筆尖中創建的導航控制器嗎?

謝謝! -Jeff

回答

0

創建按鈕。在Interface Builder中查看檢查器。有一個標記爲「隱藏」的複選框。覈實。爲您的按鈕創建一個插座。

UIButton *myButton; 

之後,你可以調用

[myButton setHidden:NO]; 
+0

我不確定我喜歡這個解決方案,因爲我覺得把按鈕添加到任意視圖,隱藏它,在顯示它之前從視圖中刪除它,然後將它添加到正確的視圖導航控制器)。 我想我想通了... – Jeff 2010-08-15 04:09:44

0

我想我想通了。

創建一個新的筆尖,其所有者是UIViewController。創建並配置UISegmentedControl。將UIViewController的視圖設置爲UISegmentedControl。

編程方式:

UIViewController* buttonController = [[UIViewController alloc] initWithNibName:@"AddRemoveCustomButton" bundle: nil]; 
UIView* segmentedControl = [buttonController view]; 
UIBarButtonItem* bbi = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl]; 
self.navigationItem.rightBarButtonItem = bbi; 
[bbi release]; 
[segmentedControl release]; 
[buttonController release]; 

但是,有沒有引用的UINavigationController對象的另一種方式,即使它是在另外一個筆頭創造出來的?如果是這樣,我可以在IB中做所有事情,並避免使用「手動」解決方案。

謝謝! -Jeff

相關問題