iOS присутствует Viewcontroller получает черный экран
Я пытаюсь представить 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 ответов
Alloc init AuthViewController не означает, что будет создан макет для контроллера.
здесь View controller не загружает свой вид, поэтому вы получаете черный экран. Используйте объект раскадровки и идентификатор контроллера вида для загрузки его вида.
укажите идентификатор раскадровки в раскадровке AuthViewController контроллер.
добавить Storyboard ID и марки true на Use Storyboard ID опцию как на рисунке ниже:

теперь вам 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];
является ViewController для AuthViewController в настоящее время Storyboard? Если да, то вы должны передать ему Storyboard ID и должен инициировать ваш AuthViewController таким образом:
AuthViewController *authViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"_STORYBOARD_ID_"];
надеюсь, это поможет.
моя проблема заключалась в том, что класс, например AuthViewController в раскадровке, был простым UIViewController, а в моем классе swift-UITabBarController. Вот почему он ничего не представляет.
глупая ошибка, но я надеюсь, что смогу сэкономить время для кого-то.