使用界面构建器配置和实例化UI对象(但不在视图中显示它们)

时间:2010-08-15 03:28:17

标签: interface uinavigationcontroller instantiation builder

我正在开发我的第一个iOS应用程序。我没有遇到以标准方式使用界面构建器的问题。

我想使用界面构建器来配置和实例化按钮,但不要将其添加到视图中(因为我想将按钮添加到导航栏,该导航栏是在不同的笔尖中创建的。)

我尝试简单地将按钮(分段控件)添加到界面构建器中的“文档”,添加插座,并将其添加到viewDidAppear:中的self.navigationItem,但是viewDidAppear中的outlet变量为null:

我可以完全以编程方式创建按钮,但我不愿意。所以,我的问题是:

1)我可以在界面构建器中配置和实例化UI对象,将它们连接到插座,然后以编程方式显示它们吗?如果是这样,最好的方法是什么?

2)我可以直接在界面构建器中将我的按钮添加到在另一个笔尖中创建的导航控制器吗?

谢谢! -Jeff

2 个答案:

答案 0 :(得分:0)

创建按钮。查看Interface Builder中的检查器。有一个标有“隐藏”的复选框。核实。为您的按钮创建一个插座。

UIButton *myButton;

稍后,您可以致电

[myButton setHidden:NO];

答案 1 :(得分:0)

我想我已经明白了。

创建一个新的nib,其所有者是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对象,即使它是在另一个nib中创建的?如果是这样,我可以在IB中做所有事情,并避免使用“手动”解决方案。

谢谢! -Jeff