【发布时间】:2014-05-17 00:55:06
【问题描述】:
(iOS7 中的问题) 我知道将 TabBarController 放在 NavigationController 中是不好的。但是,如果真的需要,有什么解决方案吗? stroyboard 就像“This”。
问题来了:
在“ItemTVC”中,backBarItem 不会弹出到其父级“SampleTVC”,而是弹出到根“ProjTVC”,为什么?
在'SampleTVC'中,如果调用:
[self.navigationController setNavigationBarHidden:NO]
和[self.navigationController.navigationController setNavigationBarHidden:YES]
隐藏根导航栏并显示最近的祖先导航栏,如何设置最接近祖先导航栏的leftBarButtonItem到根的navigationItem的backBarButtonItem?如果两个导航栏都没有隐藏,则根导航栏将占主导地位(显示在最近的祖先导航栏的顶部。但是,如何在根导航栏添加 rightBarButtonItem?我试过了:
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(insertNewObject:)]和self.navigationItem setRightBarButtonItem:addButton,但没有显示按钮。设置
self.navigationController.backBarButtionItem永远不会对其后续导航视图产生任何影响。它始终为零。
在我看来,当 TabBarController 和 NavigationController 在此配置中混合时,self.navigationItem 会完全搞砸。
(我正在使用的一个丑陋的解决方案是:先隐藏根导航栏,然后将 UIBarButtonItem 分配给最近的祖先导航栏的 leftBarButtonItem,然后调用 [self.navigationController.navigationController popViewControllerAnimated:YES],
但是这个按钮将是不同的样式'backBarButtionItem'应该是。如何在不同的导航栏的项目中获取当前显示的backBarButtionItem的副本?)
【问题讨论】:
标签: ios objective-c