Я боролся с этим часами.Я искал везде и просто не могу найти решение своей проблемы.Я почти уверен, что мне просто не хватает некоторых ключевых понятий.
Мой 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), но я просто не могу заставить этот модал всплыть.
Как мне достичь того, что я ищу?Каковы наилучшие практики и какое решение лучше всего поддерживать в чистоте и порядке моего кода?
Я застрял, поэтому надеюсь, что ваше решение позволит мне продолжить разработку моего приложения!