当UIViewController启动时,我想立即启动另一个UIViewController。 这不起作用:
-(void) awakeFromNib {
UIViewController *newcontroller = [[[UIViewController alloc] init] autorelease];
...
[self presentModalViewController:newcontroller animated:YES];
}
为了使其工作,我必须为方法执行afterDelay,如下所示:
-(void) awakeFromNib {
[self performSelector:@selector(startNewController) withObject:nil afterDelay:0.5];
[super init];
}
-(void) startNewController {
UIViewController *newcontroller = [[[UIViewController alloc] init] autorelease];
...
}
是否可以毫不拖延地让它工作?
答案 0 :(得分:0)
在startNewController
方法中调用viewDidAppear
,这是因为当你尝试呈现模态viewController时,你的viewController没有完全加载,所以这就是你等待时它的工作原理。
答案 1 :(得分:0)
实际上,您不应该计划强制您执行此类实现的应用程序体系结构。虽然,我可以理解有时候你没有出路......
我会说: 您的案例的最佳解决方案是从
调用您的控制器viewDidAppear
或
viewWillAppear中