iOS现在Viewcontroller获取黑屏
我正在尝试使用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];
但是用黑屏获得它。 可能是什么问题?
Alloc init AuthViewController
并不意味着将为控制器创建视图布局。
这里视图控制器没有加载它的视图,这就是你得到黑屏的原因。 使用storyboard对象和视图控制器的标识符来加载其视图。
在AuthViewController
控制器的Storyboard中指定故事板标识符。
添加Storyboard ID
并为Use Storyboard ID
选项标记为true
,如下图所示:
现在使用下面的代码获取AuthViewController
控制器对象:
AuthViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"AuthViewController"];
你可以参考下面的故事板的片段:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; AuthViewController *authViewController = [storyboard instantiateViewControllerWithIdentifier:@"**YOUR_STORYBOARD_ID**"]; [authViewController setModalPresentationStyle:UIModalPresentationFullScreen]; [self presentViewController:authViewController animated:YES completion:nil];
在Storyboard
是否存在AuthViewController
的ViewController? 如果是,那么你应该传递一个Storyboard ID
并以这种方式启动你的AuthViewController
:
AuthViewController *authViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"_STORYBOARD_ID_"];
我希望这有帮助。
我的问题是类,例如故事板中的AuthViewController是一个简单的UIViewController,而在我的swift类中它是一个UITabBarController。 这就是为什么它没有渲染任何东西。
愚蠢的错误,但我希望我可以节省一些时间。