У меня есть приложение, которое начинается с табличного представления (из xib), которое загружает несколько контроллеров навигации. Я хочу представить модальное представление при запуске, если выполняется длинная последовательность инициализации. Я попытался представить модальное представление в App Delegate, но представление не появляется до тех пор, пока основной код уже завершен.
MainWindow.xib загружает TableViewController, поэтому я отправил вызов presentmodalview в этом представлении. Появится с тем же результатом. У меня есть многочисленные вызовы NSLOG, поэтому я могу наблюдать за происходящим, но я не могу понять, почему представление не появляется до тех пор, пока не завершится как делегат приложения, так и viewWillAppear контроллера таблицы. Я переместил вызов viewDidAppear с тем же результатом. Вот фрагмент кода:
Делегат приложения:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// Add the tab bar controller's current view as a subview of the window
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];
[[UIApplication sharedApplication] setStatusBarHidden:NO];
// if new version being installed do init stuff
if ( <needs update code here>) {
Uncompress *uncompressView = [[Uncompress alloc] initWithNibName:@"Uncompress" bundle:nil];
[self.tabBarController presentModalViewController:uncompressView animated:NO];
[uncompressView release];
}
}
Я также безуспешно пытался изменить presentmodalviewcontroller
на [window addSubview:uncompressView.view]
.
Код обновления работает очень хорошо, проблема в том, что представление не появляется, пока не завершены и AppDelegate, и TableView. Я не создаю какие-либо взгляды программно - все из Xib's. Я не могу понять, где вызвать функцию обновления, чтобы сразу же появилось представление. Любая помощь приветствуется. Спасибо!