在UISplitView
的详细视图中,我想在其UINavigationController
的子视图中添加子视图。
我使用NSTimer *delayTimer
来延迟加载子视图,因为我使用动画淡入细节视图。
delayTimer = [NSTimer scheduledTimerWithTimeInterval:1.3 target:self
selector:@selector(loadWelcomeView) userInfo:nil repeats:NO];
我要添加的视图名为welcomeview
- (void) loadWelcomeView
{
NSLog(@"Welcome View Loaded.");
welcomeViewController = [[WelcomeView alloc]
initWithNibName:@"WelcomeView" bundle:nil];
[self.navigationController addChildViewController:welcomeViewController];
}
但是当我运行该程序并等待时,它完全是空白的!
但是,Welcome view loaded.
消息显示在调试窗口中。
如果我使用[self loadWelcomeView];
而不是使用NSTimer
,欢迎视图将会完美显示。
我做错了什么手术......?
答案 0 :(得分:0)
- (void) loadWelcomeViewWithinMainThread
{
NSLog(@"Welcome View Loaded.");
welcomeViewController = [[WelcomeView alloc] initWithNibName:@"WelcomeView" bundle:nil];
if(welcomeViewController)
{
if(self.navigationController)
{
[self.navigationController addChildViewController:welcomeViewController];
} else {
NSLog( @"navigationController is null");
}
} else {
NSLog(@"welcomeViewController is null");
}
}
- (void) loadWelcomeViewWithinMainThread {
[self performSelectorOnMainThread: @selector(loadWelcomeViewWithinMainThread) withObject: nil waitUntilDone: YES];
}