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.hAppDelegate.m。只需用完整的代码更新问题。我希望你从一个“空应用程序”开始(我们在 Xcode 5.1 中就有)。​​ 让我们continue this discussion in chat。

以上是关于UINavigationController 不显示的主要内容,如果未能解决你的问题,请参考以下文章

使用 p 值逐步回归以删除 p 值不显着的变量

调用泛型方法而不显式指定类型参数

Qt - 如何在不显式实现线程的情况下同时运行两个插槽

在数据框中合并两个熊猫系列而不显式使用键

python 调用父类方法, 重写父类构造方法, 不显式调用,会报错

在 MongoDB 中搜索任何字段的值而不显式命名它