【问题标题】:add a UIToolbar as a UINavigationItem error添加 UIToolbar 作为 UINavigationItem 错误
【发布时间】: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


【解决方案1】:

UIBarButtonItem 是工具栏中的控件之一。你确定你在做什么?我听不懂你在说什么,但似乎你正试图在 UIBarButtonItem 中添加一个工具栏。应该是相反的,UIbarButtonItem 位于 UIToolbar 内

【讨论】:

  • UIToolbar 包含几个 UIBarButtonItem,但我试图将 UIToolbar 放在另一个 UIBarButtonItem 中,以便将其添加到导航栏。我认为没有更简单的方法。
  • 更简单的方法是创建一个自定义的UIView控件,你可以任意设置框架。您要做的是 UIToolbar Inception!
猜你喜欢
  • 2010-12-31
  • 1970-01-01
  • 2013-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-14
  • 1970-01-01
相关资源
最近更新 更多