【问题标题】:NavigationController not loading viewNavigationController 未加载视图
【发布时间】:2012-08-23 06:29:54
【问题描述】:

我正在使用 xCode 4.3.2 并启动了一个空白应用程序。

我有一个导航控制器和一个简单的登录控制器。我希望登录控制器成为我的根视图,因此这是用户登录时要做的第一件事。

我正在使用以下代码,当我运行应用程序时,它会显示黑屏。我输入了 LoginViewController.m->ViewDidLoad 的日志,它正在运行,我做错了什么吗? LoginViewController.xib 非常简单,它现在只包含一个按钮,一旦我弄清楚它就会切换到选项卡视图控制器.

提前致谢。

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:     (NSDictionary *)launchOptions
    {
        UIViewController *loginController = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
        navigationController = [[UINavigationController alloc] initWithRootViewController:loginController];



        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        [self.window addSubview:navigationController.view];
        [self.window makeKeyWindow];


        return YES;
    }

【问题讨论】:

  • 尝试self.window.rootViewController = navigationController,而不是将导航控制器的视图添加为窗口中的子视图。
  • @nielsbot 我试过还是黑屏。我也试过 self.window.rootViewController = loginController;并有同样的问题。这是否意味着问题出在我的 LoginViewController 中???
  • could be.. 可能要确保在您的视图控制器上调用 viewDidLoadviewDidAppear,并检查您的视图框架以及它的父视图是否 ≠ nil
  • viewDidAppear 和 viewWillAppear 都不会被命中...如何查看它的超级视图?
  • assert( view.superview ) 但直到 viewDidAppear: 被调用后才会设置。注意:是-viewDidAppear:不是 -viewDidAppear

标签: iphone ios xcode ios4 xcode4.3


【解决方案1】:

这是不对的:

[self.window addSubview:navigationController.view];

改成这样:

self.window.rootViewController = navigationController;

【讨论】:

  • 仍然只显示一个空白屏幕。
  • 然后注释掉几乎所有代码,然后执行 self.window.rootViewController = loginController;,我猜它也会是黑色的,这意味着登录控制器有问题 - 笔尖名称拼写错误,或 nib 未包含在项目中等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-25
  • 2020-12-06
  • 2019-02-19
  • 2017-01-14
  • 2015-12-25
  • 2013-01-10
相关资源
最近更新 更多