我正在尝试在我的应用程序中添加一些导航控制器,它喜欢:
在我的索引页面视图控制器中,我尝试像这样初始化导航控制器:
-(void)viewDidLoad{
...
//allocate a navigation controller.
myNavigationController = [[UINavigationController alloc]init];
myNavigationController.delegate = self;
myNavigationController.navigationBar.hidden = YES;
[self.view addSubview:myNavigationController.view];
[myNavigationController pushViewController:tabViewController animated:YES];
[self presentModalViewController:myNavigationController animated:YES];
}
在这里,索引页面视图控制器是我的应用程序的根视图控制器,在这里它只是一个普通的 UIViewController。
[myNavigationController pushViewController:tabViewController animated:YES];
这里我推入导航控制器的 tabViewController 是一个自定义的 tabview 控制器,它利用容器视图来保存选项卡按钮,还保存一个用于切换选项卡的导航控制器。
这里的问题是:
myNavigationController.navigationBar.hidden = YES;
因为我已经使导航栏不可见,所以当我的自定义视图控制器显示时它不会显示,但是当我想使用导航控制器切换到其他视图控制器并且我还希望导航栏可见时:
myNavigationController.navigationBar.hidden = NO;
MyViewController *toSwitchNC = [[MyViewController alloc]init];
[myNavigationController pushViewController:toSwitchNC animated:YES];
导航栏将不再显示。我也试过把:
self.navigationController.navigationBar.hidden = NO
在 MyViewController 的 viewDidLoad、ViewDidAppear 甚至导航控制器的委托方法中,它也没有显示导航栏。
那么它有什么问题呢?为什么我一开始将导航栏初始化为不可见,即使我将隐藏标志设置为false,它也不会再次显示?