Представьте UIViewController из NSObject

Что-то происходит в моей модели данных, и мне нужно представить модальный контроллер представления, созданный через раскадровку.

Как я могу это сделать? Мне нужно представить модальный VC из NSObject, и, очевидно, presentViewController — это метод UIViewController.

Как лучше всего это сделать?

UIStoryboard *mainStoryboard = [(AppDelegate *) [[UIApplication sharedApplication] delegate] storyboard];

NewMessageListenPopupVC *popupVC = [mainStoryboard instantiateViewControllerWithIdentifier:@"NewMessageListenPopupVC"];

[self presentViewController:popupVC animated:YES completion:nil];

ИЗМЕНИТЬ:

Код, который я, вероятно, собираюсь использовать:

UIStoryboard *mainStoryboard = [(AppDelegate *) [[UIApplication sharedApplication] delegate] storyboard];

NewMessageListenPopupVC *popupVC = [mainStoryboard instantiateViewControllerWithIdentifier:@"NewMessageListenPopupVC"];

UIViewController *rootVC = [[(AppDelegate *) [[UIApplication sharedApplication] delegate] window] rootViewController];
[rootVC presentViewController: popupVC animated:YES completion:nil];

person stackOverFlew    schedule 17.10.2013    source источник
comment
За что минус?   -  person stackOverFlew    schedule 18.10.2013


Ответы (1)


rВы можете сделать это, получив контроллер rootView из окна приложения, а затем вызвав presentViewController на этом VC.

UIViewController *vc = [window rootViewController];
[vc presentViewController: yourVC animated:YES completion:nil];
person Ben Avery    schedule 17.10.2013
comment
это кажется хорошей идеей. есть ли шанс, что rootVC освобожден? - person stackOverFlew; 18.10.2013
comment
Я так не думаю, но может быть какой-то пограничный случай. Хотя я думаю, что делегат приложения прервется, если у него нет rootViewController, не цитируйте меня по этому поводу: P. - person Ben Avery; 18.10.2013
comment
свойство окна не найдено вне класса UIViewcontroller. - person MRizwan33; 07.06.2018
comment
MRizwan вам нужно получить окно, используя UIWindow *window = [(AppDelegate *) [[UIApplication sharedApplication] делегат] window]; - person Ben Avery; 25.06.2018