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. Вот почему он ничего не представляет.
глупая ошибка, но я надеюсь, что смогу сэкономить время для кого-то.