【发布时间】: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。
标签: objective-c ios uinavigationcontroller uitoolbar uibuttonbaritem