Проблема с отображением modalViewController - PullRequest
0 голосов
/ 18 февраля 2011

Я боролся с этим часами.Я искал везде и просто не могу найти решение своей проблемы.Я почти уверен, что мне просто не хватает некоторых ключевых понятий.

Мой AppDelegate (didFinishLaunching) в основном настраивает мое окно и вызывает RootViewController:

 // create our window
 UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
 [window setBackgroundColor:[UIColor blackColor]];

 // create our rootviewcontroller
 RootViewController *controller = [[RootViewController alloc] init];

 // add our rootviewcontroller's view to our window
 [window addSubview:controller.view];

 // controller is now owned by window's view
 [controller release];

 // show us to the world
 [window makeKeyAndVisible];

Когда я добавляю controller.viewкак подвид окна, я понимаю, что loadView RootVC будет вызываться автоматически.

В RootVC loadView я создаю tabBarController, каждая вкладка имеет навигационный контроллер и свой собственный viewController.Все это работает нормально.

В RootVC viewDidLoad я проверяю, запускает ли пользователь приложение впервые, и если да, то я хочу вызвать модальный экран приветствия.Это часть, с которой у меня возникают проблемы.

Я бы хотел сохранить как можно больше кода в методе RootVC viewDidLoad и в идеале смог бы выполнить то, что я хочу, с помощью этого:

WelcomeViewController *welcome = [[WelcomeViewController alloc] init];
[self presentModalViewController:welcome animated:true];
[welcome release]; 

Очевидно, это не работает.LoadVV WelcomeVC еще не был запущен, потому что я не установил явно его свойство view.Я играл с кучей разных решений (welcome.view - [[UIView ....], используя метод init WelcomeVC для установки self.view), но я просто не могу заставить этот модал всплыть.

Как мне достичь того, что я ищу?Каковы наилучшие практики и какое решение лучше всего поддерживать в чистоте и порядке моего кода?

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

1 Ответ

1 голос
/ 18 февраля 2011

Хотя проблема не так проста, решение есть. Вы должны подождать, пока не появится основной вид. Поэтому проверьте условие и представьте модальное представление в методе viewDidAppear, а не в методе viewDidLoad.

...