Я пытаюсь показать модальное представление прямо после того, как другой вид был представлен модально (второй представляет собой загрузочный вид, который появляется).iPhone сбой при представлении модального контроллера вида
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
// Show load
LoadViewController *loader = [[LoadViewController alloc] init];
[self presentModalViewController: loader animated:NO];
[loader release];
}
Но когда я это делаю, получаю «Сигнал приема программы:« EXC_BAD_ACCESS ».» ошибка.
Трассировка стека является:
0 0x30b43234 in -[UIWindowController transitionViewDidComplete:fromView:toView:]
1 0x3095828e in -[UITransitionView notifyDidCompleteTransition:]
2 0x3091af0d in -[UIViewAnimationState sendDelegateAnimationDidStop:finished:]
3 0x3091ad7c in -[UIViewAnimationState animationDidStop:finished:]
4 0x0051e331 in run_animation_callbacks
5 0x0051e109 in CA::timer_callback
6 0x302454a0 in CFRunLoopRunSpecific
7 0x30244628 in CFRunLoopRunInMode
8 0x32044c31 in GSEventRunModal
9 0x32044cf6 in GSEventRun
10 0x309021ee in UIApplicationMain
11 0x00002154 in main at main.m:14
Любые идеи? Я полностью в тупике! Вид загрузки пуст, поэтому в нем нет ничего, что вызывает ошибку. Это как-то связано с запуском 2-х видов в одном цикле событий или что-то еще?
Спасибо,
Mike
Edit: Очень странно ... Я изменил его немного, так что вид загрузки отображаются после крошечной задержки, и это работает отлично! Таким образом, это похоже на то, что внутри одного цикла событий!
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
// Show load
[self performSelector:@selector(doit) withObject:nil afterDelay:0.1];
}
- (void)doit {
[self presentModalViewController:loader animated:YES];
}
Просто где находится EXC_BAD_AC CESS из? Вы даете нам трассировку стека здесь, но я не уверен, что ошибка происходит в этом фрагменте кода. Можете ли вы отредактировать сообщение, чтобы дать нам полный журнал со следами, где были все потоки? –
Я не уверен, откуда он. Это единственный след, который у меня есть, казалось бы, плохой доступ не исходит из моего кода, так что это что-то внутреннее обращение к чему-то, поэтому я не могу его точно определить! Я гарантировал, что все сохранено, поэтому я понятия не имею, что происходит! –
Попробуйте положить 'loader' в пул авторефератов. Я думаю, что загрузчик слишком быстро исчезает, вероятно, потому, что текущий контроллер представления должен уйти с пути для нового контроллера представления и просмотра. Другие идеи: используйте отладчик и наблюдатель. Если это то, что вызывает проблемы, вы обнаружите это именно так.Если нет, держитесь в отладчике, и вы можете понять это. –