在我的应用程序中tabbarcontroller
,这不是第一个viewcontroller
。它将以 . 形式打开navigationcontroller
。(通过将其从其父级推入堆栈)
现在我想在这个视图的导航栏中添加一个 rightbarbuttonitem。我正在使用这段代码:
UIBarButtonItem *b= [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(actionBarButtonPressed)];
self.navigationController.navigationItem.rightBarButtonItem= b;
但它不起作用 - 导航栏中没有出现任何按钮。我对此进行了搜索,但在所有主题中,此代码已作为工作解决方案得到解答。tabbar
也许它在使用和navigationbar
在一起时应该有所不同。有谁知道任何其他可行的解决方案。
编辑 我在最后一行添加了一个断点广告并检查了一些变量。这是结果:
(lldb) po self.navigationController.navigationItem.rightBarButtonItem
error: property 'navigationItem' not found on object of type 'id'
error: 1 errors parsing expression
(lldb) po self.navigationController;
nil
(lldb) po self.navigationItem;
<UINavigationItem: 0x8997070>
(lldb)
(lldb) po self.navigationController.navigationItem.rightBarButtonItem
error: property 'navigationItem' not found on object of type 'id'
error: 1 errors parsing expression
看来navigationController
是nil
,我们应该直接调用navigationItem
. 所以我更改了代码,但再次无法正常工作。所以我检查了这些变量:
(lldb) po self.navigationItem
<UINavigationItem: 0x8d789c0>
(lldb) po self.navigationItem.rightBarButtonItem
error: property 'rightBarButtonItem' not found on object of type 'id'
error: 1 errors parsing expression
(lldb)
似乎rightbarbuttonitem
不存在。那么我们现在应该怎么做呢?