UINavigationController 不显示
Posted
技术标签:
【中文标题】UINavigationController 不显示【英文标题】:UINavigationController not displaying 【发布时间】:2014-10-24 03:08:37 【问题描述】:我是 ios 开发新手,所以我确信答案很简单,但我的无知让我很难在网上找到答案。我正在尝试使用 UINavigationController 在视图之间切换。到目前为止,我已经使用以下代码成功显示了第一个视图。
FLInitialMapViewController *control = [[FLInitialMapViewController alloc] init];
self.window.rootViewController = control;
然后我编写了添加导航控制器的代码,但是当我运行它时,我看到的大多是黑色屏幕,顶部有一个灰色条。这是代码
FLInitialMapViewController *control = [[FLInitialMapViewController alloc] init];
_navController = [[UINavigationController alloc] initWithRootViewController:control];
self.window.rootViewController = _navController;
以下是“didFinishLaunchingWithOptions”中 AppDelegate.m 的完整代码:
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
FLInitialMapViewController *control = [[FLInitialMapViewController alloc] init];
self.navController = [[UINavigationController alloc] initWithRootViewController: control];
[self.navController setNavigationBarHidden:YES];
self.window.rootViewController = self.navController;
[self.window makeKeyAndVisible];
return YES;
有趣的是,靠近顶部的灰色条有点半透明,我可以在它下面看到我的一些 UI 元素。
编辑:我删除了顶部栏,现在我看到以下内容!
这是应该看到的。
【问题讨论】:
您是否在AppDelegate.m
中设置UINavigationController
?假设您从Empty Application
开始。请分享截图。
此代码在 AppDelegate.m 中。上面的代码不是设置navcontroller吗?
【参考方案1】:
为了您的方便,我添加了导航栏设置。在 AppDelegate.m
下的 didFinishLaunchingWithOptions:
方法下试试这个 -
FLInitialMapViewController * control = [FLInitialMapViewController new];
UINavigationController *myNav = [[UINavigationController alloc] initWithRootViewController: control];
self.window.rootViewController = myNav;
// Setup navigation bar programmatically
UINavigationBar *navigationBar = myNav.navigationBar;
navigationBar.barTintColor = [UIColor orangeColor];
navigationBar.barStyle = UIBarStyleBlackOpaque;
// Boiler plate code from AppDelegate
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
【讨论】:
无变化。我的控制器是否有可能没有正确地将元素添加到视图中?因为看起来我的元素正在显示,但在导航控制器下方。 你想要控制器的代码吗?因为代码很长,我不知道还有什么相关的。 不是来自控制器。但是,来自您的AppDelegate.h
和AppDelegate.m
。只需用完整的代码更新问题。我希望你从一个“空应用程序”开始(我们在 Xcode 5.1 中就有)。
让我们continue this discussion in chat。以上是关于UINavigationController 不显示的主要内容,如果未能解决你的问题,请参考以下文章