我试图在另一个 View 以模态方式呈现后立即显示一个模态视图(第二个是出现的加载 View )。
- (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
有什么想法吗?我完全被难住了!加载 View 是空的,因此其中肯定没有发生任何导致错误的事情。这是否与在同一事件循环中以模态方式启动 2 个 View 有关?
谢谢
迈克
编辑:非常奇怪...我稍微修改了它,以便在微小的延迟后显示加载 View ,这工作正常!所以它似乎是在同一个事件循环中的东西!
- (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];
}
最佳答案
我稍微修改了它,以便在微小的延迟后显示加载 View ,这工作得很好!所以它似乎是在同一个事件循环中的东西!
- (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];
}
关于iPhone 在呈现模态视图 Controller 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1412021/