首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIViewController: setToolbarItems vs navigationItem

UIViewController: setToolbarItems vs navigationItem
EN

Stack Overflow用户
提问于 2010-12-28 11:43:47
回答 4查看 5.8K关注 0票数 1

我的应用程序有一个由UINavigationController管理的UIViewController子类。

在我的UIViewController子类的viewDidLoad中,我尝试将UIBarButtonItem添加到工具栏,如下所示:

代码语言:javascript
复制
settingsButton = [[UIBarButtonItem alloc] initWithTitle:@"Settings"
   style:UIBarButtonItemStylePlain target:self action:@selector(viewSettings:)];
[self setToolbarItems:[NSArray arrayWithObject:settingsButton]];

这对我来说是行不通的,所以在搜索了一番之后,我尝试了一下:

代码语言:javascript
复制
[[self navigationItem] setRightBarButtonItem:settingsButton];

这一切都很顺利。通过阅读UIViewController documentation,我仍然对为什么setToolbarItems不能工作感到困惑。我在调试器中验证了按钮位于viewDidAppear方法的toolbarItems数组中。按钮本身就是没有出现在我的工具栏上。

所以,我的问题是,为什么在第一个代码片段中setToolbarItems不能为我工作?

我根本没有在我的xib中为这个视图控制器配置工具栏,如果这有区别的话。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-28 12:11:49

是的,这使得你可以在默认情况下看到基于导航的应用程序的difference.Whenever栏,实际上这不是一个toolBar,也就是说,导航bar.so你可以通过引用self.navigationItem添加项目。

票数 5
EN

Stack Overflow用户

发布于 2014-02-17 12:32:11

  1. [self setToolbarItems:NSArray arrayWithObject:settingsButton];基本上填充导航控制器的底部工具栏,而不是左右顶部栏按钮。
  2. 默认情况下,不显示底部工具栏。要显示它,您必须调用setToolbarHidden:NO
  3. Below是相关的文档- UINavigationController类参考工具栏:

与导航控制器关联的自定义工具栏。(只读)

@ property (非原子,只读) UIToolbar *工具栏讨论此属性包含对导航控制器管理的内置工具栏的引用。对此工具栏的访问仅供想要显示工具栏中的操作表的客户端使用。不应直接修改UIToolbar对象。

此工具栏内容的管理是通过与此导航控制器关联的自定义视图控制器来完成的。对于导航堆栈上的每个视图控制器,可以使用UIViewController的setToolbarItems:animated:方法分配一组自定义工具栏项。

此工具栏的可见性由toolbarHidden属性控制。工具栏还遵循当前可见视图控制器的hidesBottomBarWhenPushed属性,并根据需要自动隐藏和显示自身。

票数 2
EN

Stack Overflow用户

发布于 2010-12-28 12:09:20

试着使用

代码语言:javascript
复制
[toolbar setItems:[NSArray arrayWithObject:settingsButton] animated:YES];

安装:

代码语言:javascript
复制
[self setToolbarItems:[NSArray arrayWithObject:settingsButton]];

沙尼

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4543516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档