使用interface builder配置和实例化UI对象(但不在视图中显示)

使用interface builder配置和实例化UI对象(但不在视图中显示),interface,uinavigationcontroller,instantiation,builder,Interface,Uinavigationcontroller,Instantiation,Builder,我正在开发我的第一个iOS应用程序。以标准方式使用interface builder时,我没有遇到任何问题 我想使用interface builder来配置和实例化按钮,但不想将其添加到视图中(因为我想将按钮添加到导航栏中,导航栏是在不同的nib中创建的) 我试图简单地将按钮(分段控件)添加到interface builder中的“文档”,添加一个出口,并将其添加到ViewDidAspect:中的self.navigationItem,但ViewDidAspect:中的出口变量为null 我可以

我正在开发我的第一个iOS应用程序。以标准方式使用interface builder时,我没有遇到任何问题

我想使用interface builder来配置和实例化按钮,但不想将其添加到视图中(因为我想将按钮添加到导航栏中,导航栏是在不同的nib中创建的)

我试图简单地将按钮(分段控件)添加到interface builder中的“文档”,添加一个出口,并将其添加到ViewDidAspect:中的self.navigationItem,但ViewDidAspect:中的出口变量为null

我可以完全通过编程方式创建按钮,但我不希望这样。因此,我的问题是:

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

2) 我可以直接在interface builder中将我的按钮添加到在其他nib中创建的导航控制器吗

谢谢!
-杰夫

创建按钮。查看Interface Builder中的inspector。有一个标记为“隐藏”的复选框。请选中它。为按钮创建一个插座

UIButton *myButton;
稍后,你可以打电话

[myButton setHidden:NO];

我想我明白了

创建一个所有者为UIViewController的新nib。创建并配置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

我不确定我是否喜欢这个解决方案,因为我对在任意视图中添加按钮、隐藏按钮、在显示按钮之前将其从该视图中删除,然后在运行时将其添加到正确的视图(导航控制器)感到不安。我想我知道了。。。