Iphone UINavigationController导航栏可见性集不工作

Iphone UINavigationController导航栏可见性集不工作,iphone,user-interface,Iphone,User Interface,我正在尝试在我的应用程序中添加一些导航控制器,如下所示: 在我的索引页视图控制器中,我尝试如下初始化导航控制器: -(void)viewDidLoad{ ... //allocate a navigation controller. myNavigationController = [[UINavigationController alloc]init]; myNavigationController.delegate = self; myNavigati

我正在尝试在我的应用程序中添加一些导航控制器,如下所示:

在我的索引页视图控制器中,我尝试如下初始化导航控制器:

-(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];
}
在这里,index page view controller是我的应用程序的根视图控制器,它只是一个常见的UIViewController

[myNavigationController pushViewController:tabViewController animated:YES];
这里我推到导航控制器中的tabViewController是一个自定义的tabview控制器,它使用容器视图来保持tab按钮,还保持一个用于切换tab的导航控制器

这里的问题是:

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、ViewDidDisplay甚至在导航控制器的委托方法中,它也没有显示导航栏


那有什么问题吗?为什么一开始我将导航栏初始化为不可见,即使我将隐藏标志设置为false,它也不会再次显示?

好的,我通过删除索引页视图控制器中的导航控制器容器解决了这个问题。这可能是一个愚蠢的问题,因为苹果已经在开发者文档中正式声明导航视图控制器应该尽可能地放在视图堆栈的根目录下。由于IOS是一个封闭的系统,除了苹果,谁知道它在下面运行。

Hi,我试图在我的自定义选项卡视图中去掉导航控制器,似乎导航可见性集现在可以工作了。但到底发生了什么?“我的索引视图”控制器的导航控制器推送一个“我的自定义选项卡”视图,该视图也包含一些导航控制器,这是需要避免的错误方法还是任何建议?