添加 UIToolbar 作为 UINavigationItem 错误
Posted
技术标签:
【中文标题】添加 UIToolbar 作为 UINavigationItem 错误【英文标题】:add a UIToolbar as a UINavigationItem error 【发布时间】:2012-06-28 17:28:04 【问题描述】:我有一个位于视图底部的 UIToolbar。当用户在 iPad 上时,我想将工具栏添加到导航控制器的右侧,因为会有空间。
我添加了这段代码:
- (void)viewDidLoad
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
UIBarButtonItem *toolBarItem = [[UIBarButtonItem alloc]initWithCustomView:toolBar];
self.navigationItem.rightBarButtonItem = toolBarItem;
[super viewDidLoad];
但应用程序因错误而崩溃:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Auto Layout still required after executing -layoutSubviews. UINavigationBar's implementation of -layoutSubviews needs to call super.'
我不知道为什么这是一个问题,因为我以前见过这种方法。顺便说一句,工具栏项目是在界面构建器中添加的,而不是使用按钮的 NSArray,这会有所不同吗?
谢谢!
【问题讨论】:
你通常在哪里声明 UIBarButtonItem? 请向我们展示工具栏分配和初始化代码。 你有没有 [super viewDidLoad];在你的 viewDidLoad 方法中? 你创建的工具栏在哪里? @luyuan 该工具栏作为 iPhone 版本屏幕底部的常规工具栏存在。对于 iPad 版本,我想将工具栏合并到顶部的导航栏中。我在界面生成器的工具栏中添加了 uibarbuttonitems。 【参考方案1】:UIBarButtonItem 是工具栏中的控件之一。你确定你在做什么?我听不懂你在说什么,但似乎你正试图在 UIBarButtonItem 中添加一个工具栏。应该是相反的,UIbarButtonItem 位于 UIToolbar 内
【讨论】:
UIToolbar 包含几个 UIBarButtonItem,但我试图将 UIToolbar 放在另一个 UIBarButtonItem 中,以便将其添加到导航栏。我认为没有更简单的方法。 更简单的方法是创建一个自定义的UIView控件,你可以任意设置框架。您要做的是 UIToolbar Inception!以上是关于添加 UIToolbar 作为 UINavigationItem 错误的主要内容,如果未能解决你的问题,请参考以下文章
UINavigation 控制器 UIViewController 和 UItoolbar 作为子视图问题
以编程方式在 UINavigationBar 下方的 UIToolbar 中添加 UISegmentedControl