偶尔呈现模态视图会隐藏导航栏

Cor*_*oyd 18 iphone cocoa-touch uikit

我现在遇到过这两次了.

有时使用以下代码行:

[self.navigationController presentModalViewController:aViewController animated:YES];
Run Code Online (Sandbox Code Playgroud)

显示视图,然后隐藏导航栏.

我可以写:

[self.navigationController setNavigationBarHidden:NO];
Run Code Online (Sandbox Code Playgroud)

在我心中的内容,我能想到的任何地方都没有效果.

有没有人碰到这个?

我做傻事吗?

Hea*_*ser 38

不,我也碰到了这个.问题是,当您使用基于UIViewController的类呈现模态视图控制器时,它不会将调用导航控制器的导航栏扩展到模态.模态视图覆盖整个屏幕.我最终要解决的问题是创建一个UINavigationController并将基于UIViewController的类推送到它上面,然后将presentModalViewController执行到导航控制器的实例.

喜欢:

UIViewController *vc = [[UIViewController alloc] init];
UINavigationController *cntrol = [[UINavigationController alloc] initWithRootViewController:vc];
[self presentModalViewController:cntrol animated:YES];
[cntrol release];
Run Code Online (Sandbox Code Playgroud)

这让我在顶部有一个导航栏.

我不确定这对你的特定情况是否有帮助,我建议的唯一另一件事就是用UIAnimation复制模态的行为,UIAnimation停止在手机顶部44px以下.这将保持原始导航栏可见.