iOS 目前 Viewcontroller 黑屏

iOS Present Viewcontroller getting black screen

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

 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];

但是黑屏。可能是什么问题?

AuthViewController 的 ViewController 是否出现在 Storyboard 中?如果是,那么你应该传递一个 Storyboard ID 并且应该以这种方式启动你的 AuthViewController

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

希望对您有所帮助。

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

此处视图控制器未加载其视图,这就是您出现黑屏的原因。使用故事板对象和视图控制器的标识符来加载它的视图。

AuthViewController 控制器的情节提要中指定情节提要标识符。

Use Storyboard ID 选项添加 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];

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

愚蠢的错误,但我希望我能为某人节省一些时间。