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 опцию как на рисунке ниже:

enter image description here

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

глупая ошибка, но я надеюсь, что смогу сэкономить время для кого-то.