设置UINavigationController的工具栏项
题
在 iPhone OS 3.0 中,您可以使用以下命令设置 UINavigationController 的工具栏项 setToolbarItems:animated:
方法。但是,这需要您传入 UIToolbarItems 数组。虽然我可以通过编程方式创建这些工具栏项,但如果可能的话,我宁愿在 Interface Builder 中创建它们。
考虑到这一点,我在“MyGreatViewController.xib”中创建了一个 UIToolbar,并用所需的工具栏项填充了它。然后,在“MyGreatViewController.m”中,我从工具栏中获取项目并将它们传递给 setToolbarItems:animated:
:
- (void)viewDidLoad {
[super viewDidLoad];
[self setToolbarItems: [toolbar items]];
}
...在哪里 toolbar
是一个引用 UIToolbar 的 IBOutlet。
这是一个好方法吗?有更好的方法来实现这一点吗?我应该以编程方式创建这些项目吗?
解决方案
这是做这件事的一个完全可以接受的,但要注意不要忘记,装载厦门国际银行文件是关于iPhone相当昂贵的,并且很可能以更快的速度在您的viewDidLoad方法编程创建工具栏项目。
其他提示
我不知道这是否在任何地方都有记录,但我发现在 Interface Builder 中,如果启用导航控制器的工具栏,则可以将栏项目拖动到视图控制器,它们将自动显示在导航控制器的工具栏中。
例如,我们可以执行以下操作(在 Snow Leopard 上使用 Xcode 3.2):
- 文件->新建项目....选择 基于导航的应用程序 并创建项目。
- 打开
MainWindow.xib
在界面生成器中。 - 选择导航控制器,然后在属性检查器中选中“显示工具栏”框。这将导致工具栏对象出现。
- 将栏按钮项目从库拖到工具栏。它将出现在工具栏中。如果您检查 NIB 中的层次结构,您将看到这个新项目是
RootViewController
.
似乎作为导航项的子项添加的任何栏按钮项都会显示在导航栏中,并且作为视图控制器的子项添加的任何栏按钮项都会显示在工具栏中。
(我偶然发现了这一点。如果有人可以找到此行为的文档或任何其他信息,我想听听。)
不隶属于 StackOverflow