我正在尝试使用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];
但是用黑屏获取它。可能是什么问题?
答案 0 :(得分:13)
Alloc init AuthViewController
并不意味着会为控制器创建视图布局。
此处视图控制器不会加载其查看黑屏的原因。使用storyboard对象和视图控制器的标识符来加载其视图。
在AuthViewController
控制器的故事板中指定故事板标识符。
添加Storyboard ID
并为true
选项标记Use Storyboard ID
,如下图所示:
现在使用以下代码获取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。这就是为什么它没有呈现任何东西。
愚蠢的错误,但我希望我可以节省一些时间。