Ios 在第一视图控制器和自动布局中隐藏UINavigationBarController
我有一个应用程序的设计,有3个屏幕Ios 在第一视图控制器和自动布局中隐藏UINavigationBarController,ios,autolayout,Ios,Autolayout,我有一个应用程序的设计,有3个屏幕 A) 初始屏幕不应显示顶部导航栏 B) 第二个屏幕应显示顶部导航栏(带有导航返回按钮至a) C) 第三个屏幕不应显示顶部导航栏(但正常按钮返回B) 我选择在导航栏中嵌入视图控制器。 但是这样做,第一个视图控制器上的自动布局约束会发出大量警告——因为嵌入的UIView固定在顶部栏上——这真的很烦人 当然,如果我在情节提要设计器中“隐藏”导航栏,我将无法再为by B屏幕添加所需的按钮 另一种选择是完全手动实现我的应用程序的导航属性,但我确实希望避免这样做 对此
- A) 初始屏幕不应显示顶部导航栏
- B) 第二个屏幕应显示顶部导航栏(带有导航返回按钮至a)
- C) 第三个屏幕不应显示顶部导航栏(但正常按钮返回B)
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.navigationController.navigationBarHidden=YES/NO; //as per your requirement
}
如@SonuPatel answer中所述,您可以相对轻松地将导航栏设置为隐藏。布局: 在控制器A和C中,使顶部布局相对于视图偏移,而不是相对于顶部布局参考线偏移。这将使它们在导航栏不可见时位于导航栏下。隐藏项通常仍对布局有贡献,因此topLayout指南不受其隐藏的影响 在控制器B中,使顶部布局相对于顶部布局指南,使其位于导航栏下方
对于UITableViewController,您可以通过在属性检查器中选择顶部栏下的“延伸边”来免费获取此信息。Ahh。。对不起,我的问题不太清楚。这仍然不能解决设计器中显示的自动布局问题。我选择暂时不使用导航控制器。太麻烦了。