我有这个结构:
当我想从故事板添加'UINavigationItem'导航栏被“禁用”时,我尝试以编程方式添加右键:
UIBarButtonItem *button = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self
action:@selector(showPickerView:)];
self.navigationItem.rightBarButtonItem = button;
但没有任何反应。我从故事板重命名了导航栏标题,但是当我运行应用程序时,标题未设置。我真的不知道问题的根源是什么。只有后退按钮出现。 谢谢你的帮助。
答案 0 :(得分:2)
标签栏控制器中的每个项目都应该有一个导航控制器作为根控制器(如果你不需要它们,你不需要它们全部都有一个导航控制器)。您目前拥有的是导航控制器中的标签栏控制器(除非它是模态的),因此标签栏控制器中包含的视图控制器无法看到导航控制器。
答案 1 :(得分:1)
正如其他答案所指出的那样,UINavigationViewController
的层次结构不正确。 UITabBarViewController
将永远是您UINavigationViewControllers
的父级。
对于每个 UIViewController ,这是一个“Tab”,你需要UINavigationViewController
在每个“tab”UIViewConrolller的“前面”,它将有segues。
所以你不需要为每个“tab”UIViewController
都需要一个UINavigationViewController,就像其他人在这个帖子上指出的那样,只有“tabs”才会转向你想要用UINavigationViewController跟踪导航的其他视图
可以在@App Dev Guy的回答here
中看到层次结构在Swift 2中,Xcode 7有一个非常方便的功能,可以添加UINavigationController:
答案 2 :(得分:0)
试试这样。这与你的做法有点不同,它对我有用:
UIBarButtonItem *button = [[UIBarButtonItem alloc]
initWithTitle:@"title"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(showPickerView:)];
self.navigationItem.rightBarButtonItem = button;
如果您想在故事板中执行此操作,则不要拖动“导航项”,而是拖动“条形按钮项”。
答案 3 :(得分:0)
我试图重现你的问题。
完成。看看你是否可以这样做。