【发布时间】:2013-06-03 00:30:39
【问题描述】:
我正在以编程方式创建一个导航控制器,如下所示:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.mainMenuViewController = [[MainMenuViewController alloc] init];
self.window.rootViewController = self.mainMenuViewController;
UINavigationController* navigationController = [[UINavigationController alloc] initWithRootViewController:self.window.rootViewController];
[self.window makeKeyAndVisible];
[[GKHelper sharedInstance] authenticateLocalPlayer];
return YES;
}
而且,虽然 Xcode 似乎对此非常满意,但当我使用此代码启动我的应用程序时却出现黑屏。当我将其注释掉并仅使用情节提要中的箭头时,它可以正常工作,但我没有导航控制器。我做错了什么?
【问题讨论】:
-
首先:您可以使用故事板添加导航控制器。但那将是一个不同的问题,对吧?
-
是的。这就是我以前在做的事情。但是因为我正在做一个全定制的 UI,所以完全隐藏它是不可能的。因此,我尝试以编程方式获取它,这样我就可以拥有所有自定义 UI 元素,而无需使用陈词滥调的导航元素。
-
第二:你确实有一个根视图控制器和一个导航控制器。但是您实际上在哪里添加、布局、着色等您的视图?你是在 MainMenuViewController 中的 loadView 或 viewDidLoad 中执行此操作吗?如果您有视图的 XIB 文件,那么您没有加载它,正如我们在代码片段中看到的那样。如果您想从情节提要中加载单个视图,这是可能的,那么您不要这样做。那么你想做什么才能真正展示你的观点呢?
-
如您所见,我希望 MainMenuViewController 由根视图控制器控制。我分配并初始化它,然后将它分配给窗口的根视图控制器。不知何故,这似乎不起作用。
-
好的。但是当你不想看到陈词滥调的 ui 元素时,为什么要使用导航控制器呢?如果您想要自己的自定义导航,那么您可以简单地基于模态演示来做到这一点。导航控制器只是为了帮助您解决开销。但是当您想以不同的方式执行此操作时,使用 UINavigationController 可能不是最佳选择。
标签: ios objective-c uinavigationcontroller