我使用xcode 5,1和ios 6,0为iPhone创建应用程序
我想创建一个包含我的应用程序名称的视图,该视图在3秒后将被重定向到另一个包含正在处理我的应用程序的视图
我的Main.storyboard像这样
在我的 class Icoz中,我有
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"yesss");
Demmarage *d = [[Demmarage alloc] init];
[self.navigationController pushViewController:d animated:YES];
NSLog(@"merdeee");
}
但是当我构建我的应用程序时什么也没发生
我如何执行我的应用程序,我希望显示“icoz”视图3秒钟,然后显示“myblan”视图
最佳答案
首先,我看不到您的initialViewController是否是UINavigationViewController
。如果不是,则您的statemant self.navigationController
为nil,这可能是什么都没发生的原因”
在情节提要中可以看到segue,可以在viewDidAppear
中延迟执行此segue:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
double delayInSeconds = 3.0; //seconds to wait
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[self performSegueWithIdentifier:@"TheNameOfTheSegue" sender:self];
});
}
没有GCD也没有安全的另一种选择是以下几种-只需使用导航控制器即可进行推送:
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
self.timer = [NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(pushDemmarage:) userInfo:nil repeats:NO];
//or use the following line instead of NSTimer
//[self performSelector:@selector(pushDemmarage:) withObject:nil afterDelay:3];
}
-(void)pushDemmarage:(id)sender
{
Demmarage *d = [[Demmarage alloc] init];
[self.navigationController pushViewController:d animated:YES];
}