当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];
...
}
有可能让它立即工作吗?
在你的viewDidAppear
方法中调用startNewController
,这是因为当你试图呈现模态viewController时,你的viewController没有完全加载,所以这就是为什么它在你等待时工作。
实际上,您不应该计划强迫您执行此类实现的应用程序体系结构。尽管如此,我能理解有些时候你没有出路。
我想说:对于这种情况,最好的解决方案是从
调用控制器。viewDidAppear
或
那些有点