繁体   English   中英

UINavigationController导航栏可见性设置不起作用

[英]UINavigationController navigationbar visibility set not works

我试图在我的应用程序中添加一些导航控制器,就像是这样:

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

-(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控制器,该控制器利用容器视图来按住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,ViewDidAppear中,甚至在导航控制器的委托方法中,它都没有显示导航栏。

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

好的,我已经通过删除索引页面视图控制器中的导航控制器容器来解决此问题。 这可能是一个愚蠢的问题,因为Apple在开发人员文档中已正式声明,导航视图控制器应尽可能以root身份放置在视图堆栈中。 由于IOS是一个封闭的系统,因此除了苹果公司之外,谁都知道WTH的发展势头不佳。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM