iOS礼物Viewcontroller黑屏

时间:2015-01-19 10:16:17

标签: ios objective-c uinavigationcontroller

我正在尝试使用StoryBoards创建的ViewController:

 AuthViewController *authViewController = [[AuthViewController alloc] init];
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:authViewController];
    UIViewController *vc  = [[[[UIApplication sharedApplication] windows] firstObject] rootViewController];
    [vc presentViewController:nav animated:YES completion:nil];

但是用黑屏获取它。可能是什么问题?

4 个答案:

答案 0 :(得分:13)

Alloc init AuthViewController并不意味着会为控制器创建视图布局。

此处视图控制器不会加载其查看黑屏的原因。使用storyboard对象和视图控制器的标识符来加载其视图。

AuthViewController控制器的故事板中指定故事板标识符。

添加Storyboard ID并为true选项标记Use Storyboard ID,如下图所示:

enter image description here

现在使用以下代码获取AuthViewController控制器对象:

AuthViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"AuthViewController"];

答案 1 :(得分:4)

您可以参考下面的故事板:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
AuthViewController *authViewController = [storyboard instantiateViewControllerWithIdentifier:@"**YOUR_STORYBOARD_ID**"];
[authViewController setModalPresentationStyle:UIModalPresentationFullScreen];
[self presentViewController:authViewController animated:YES completion:nil];

答案 2 :(得分:2)

AuthViewController中的Storyboard的ViewController是否存在?如果是,那么您应该将Storyboard ID传递给AuthViewController并以这种方式发起AuthViewController *authViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"_STORYBOARD_ID_"];

{{1}}

我希望这会有所帮助。

答案 3 :(得分:0)

我的问题是,类,例如故事板中的AuthViewController是一个简单的UIViewController,而在我的swift类中,它是一个UITabBarController。这就是为什么它没有呈现任何东西。

愚蠢的错误,但我希望我可以节省一些时间。