作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个在 UINavigationController 上运行的应用程序。现在我想在每个屏幕的底部添加一个 UIToolbar 元素。底部的工具栏应该可以针对当前显示的 ViewController 进行自定义。我的第一个想法是简单地将工具栏添加到 navigationController View 并对其进行标记,我认为在 viewController 中我将能够检索 UIToolbar 元素。我有以下代码:
在我的 AppDelegate 中:
// Get instance of Toolbar (navController is an instance of UINavigationController and TOOLBAR_TAG a constant)
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 440, 320, 40)];
toolbar.tag = TOOLBAR_TAG;
[navController.view addSubview:toolbar];
在我的 viewController 中,我尝试了这个:
UIToolbar *toolbar = [self.navigationController.view viewWithTag:TOOLBAR_TAG];
toolbar.barStyle = UIBarStyleBlack;
然而,这给了我一个错误,说我的工具栏是一个“UILayoutContainerView”对象,而不是一个 UIToolbar 对象。因此,这个想法似乎是一个死胡同。
其他人是如何解决这个问题的?
最佳答案
UINavigationController 已经有一个工具栏。只需使用
[self.navigationController setToolbarHidden:NO];
在最顶层的 View Controller 和
[self setToolbarItems:items];
在所有 View Controller 中,items 是该 View Controller 工具栏项的 NSArray
。
编辑:至于为什么您的解决方案不起作用:您的 TOOLBAR_TAG
可能不是唯一的,这就是您获得另一个 subview 的原因。但正如我所说,无论如何您都应该使用包含的工具栏。
关于iphone - UINavigationController 各页面上的UIToolbar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2312484/
我是一名优秀的程序员,十分优秀!