我有一个设计用于3个屏幕的应用程序
我选择将视图控制器嵌入导航栏中。 但是这样做对第一个视图控制器的AutoLayout约束消除了大量的警告 - 因为嵌入的UIViews被固定到顶部栏 - 这真的很烦人。
当然,如果我"隐藏"故事板设计器中的导航栏,我无法再通过B屏幕添加所需的按钮。
另一种选择可能是手动实现我的应用程序的导航属性,但我真的想避免这样做。
对此最佳(最佳实践)解决方案是什么?
答案 0 :(得分:2)
太简单了...... 您只需在 viewWillAppear ex:
中设置导航控制器的隐藏属性- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.navigationController.navigationBarHidden=YES/NO; //as per your requirement
}
答案 1 :(得分:0)
如@SonuPatel回答中所述,您可以将导航栏设置为相对容易隐藏。对于布局:
在控制器A和C中,相对于视图而不是顶部布局指南设置顶部布局偏移。当它不可见时,这将使它们在导航栏下布局。隐藏的项目通常仍然有助于布局,因此topLayout指南不会受到隐藏的影响。
在控制器B中,相对于顶部布局指南制作顶部布局,使其保持在导航栏下方。
对于UITableViewController,您可以通过在属性检查器中选择“在顶栏下方延伸边缘”来免费获取此内容。