2014-07-10 78 views
1

我有一个有十个场景的故事板应用程序。segue ..从任何地方到第一个场景(在applicationDidBecomeActive之后)

有各种各样的赛段,如PreToFront,UserToBombs,BombsToPre等。

enter image description here

我的问题:假定用户退出应用程序(我的意思是,按下iPad的home键)。

当用户再次打开应用,applicationDidBecomeActive ...

我想,不管去到初始场景是什么。

所以无论用户在哪个场景,我都希望它在应用打开时继续播放到特定场景。 (确实,理想情况下是最初的场景。)

这怎么能做到?

+0

你的初始视图控制器是'UINavigationController'吗? – spassas

+0

感谢所有这些伟大的答案,我将调查! – Fattie

+0

@JoeBlow - 我需要你的帮助。我可以给你发邮件吗? – Patricia

回答

1

此解决方案不使用塞格斯,但我认为,如果你给一个ID为所需的视图控制器它可以工作:

-(void)applicationDidBecomeActive:(UIApplication *)application { 

    [self presentViewControllerAnimated:NO]; 

} 


- (void)presentViewControllerAnimated:(BOOL)animated { 

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"YourStoryboard" bundle:nil]; 
    UINavigationController *destinationViewNavigationController = [storyboard instantiateViewControllerWithIdentifier:@"destination"]; 
    [self presentViewController:destinationViewNavigationController animated:animated completion:nil];  
} 
1

如果您需要更复杂的逻辑比alivingston上面说,你可以使用展开细分

1)实现视图控制器这种方法,你要下去,上面的视图控制器

- (IBAction)unwind:(UIStoryboardSegue *)unwindSegue 

2)创建名为开卷塞格斯这种视图控制器Interface Builder中这种方法。 3)applicationDidBecomeActive得到顶视图控制器。像这样(但请记住,你应该得到的呈现视图控制器递归):

UIViewController* topController = self.window.rootViewController; 
if (topController.presentedViewController) topController = topController.presentedViewController; 

4)呼吁topController- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender与特定标识符

编码愉快!

3

没有任何细节,除了'重置'到应用程序上的第一个视图控制器确实变为活动状态,以下可能会执行您所需的操作。

-(void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    UIStoryboard *storyboard = self.window.rootViewController.storyboard; 
    UIViewController *firstViewController = [storyboard instantiateInitialViewController]; 
    self.window.rootViewController = firstViewController; 
} 

如果您的应用是基于一个UINavigationController,你可以叫[mainNavigationController popToRootViewControllerAnimated:YES]applicationDidBecomeActive:

相关问题