Ios 塞格。。从任意位置到第一个场景(在ApplicationIDBecomeActive之后)
我有一个故事板应用程序,有十个场景 有各种各样的分段,例如Ios 塞格。。从任意位置到第一个场景(在ApplicationIDBecomeActive之后),ios,uistoryboard,uistoryboardsegue,Ios,Uistoryboard,Uistoryboardsegue,我有一个故事板应用程序,有十个场景 有各种各样的分段,例如PreToFront,UserToBombs,BombsToPre等等 我的问题是:假设用户退出应用程序(我的意思是,按下iPad主页按钮) 当用户再次打开应用程序时,applicationIDBecomeActive 不管怎样,我都想回到最初的场景 因此,无论用户在哪一个场景,我都希望它在应用程序打开时切换到一个特定的场景。(事实上,最理想的情况是初始场景。) 这怎么可能呢 此解决方案不使用segues,但我认为如果您为所需的视图控制
PreToFront
,UserToBombs
,BombsToPre
等等
我的问题是:假设用户退出应用程序(我的意思是,按下iPad主页按钮)
当用户再次打开应用程序时,applicationIDBecomeActive
不管怎样,我都想回到最初的场景
因此,无论用户在哪一个场景,我都希望它在应用程序打开时切换到一个特定的场景。(事实上,最理想的情况是初始场景。)
这怎么可能呢 此解决方案不使用segues,但我认为如果您为所需的视图控制器提供一个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];
}
此解决方案不使用segues,但我认为如果您为所需的视图控制器提供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) 在要进入的视图控制器中实现此方法:
- (IBAction)unwind:(UIStoryboardSegue *)unwindSegue
2) 对于上述视图控制器,请在界面生成器中创建名为的展开到该视图控制器的分段以及该方法
3) 在applicationIDBECOMEACTIVE
中获取俯视图控制器。如下所示(但请记住,您应该递归地获得显示的视图控制器):
4) 调用-(void)performsguewithidentifier:(NSString*)identifier sender:(id)sender
在具有特定标识符的topController上
快乐编码 如果您需要比上面所说的更复杂的逻辑,您可以使用展开序列 1) 在要进入的视图控制器中实现此方法:
- (IBAction)unwind:(UIStoryboardSegue *)unwindSegue
2) 对于上述视图控制器,请在界面生成器中创建名为的展开到该视图控制器的分段以及该方法
3) 在applicationIDBECOMEACTIVE
中获取俯视图控制器。如下所示(但请记住,您应该递归地获得显示的视图控制器):
4) 调用-(void)performsguewithidentifier:(NSString*)identifier sender:(id)sender
在具有特定标识符的topController上
快乐编码 除了“重置”应用程序上的第一个视图控制器外,没有任何其他详细信息,以下操作可能会根据您的需要执行
-(void)applicationDidBecomeActive:(UIApplication *)application
{
UIStoryboard *storyboard = self.window.rootViewController.storyboard;
UIViewController *firstViewController = [storyboard instantiateInitialViewController];
self.window.rootViewController = firstViewController;
}
如果您的应用程序基于UINavigationController,您只需在
ApplicationIDBecomeActive:
中调用[mainNavigationController PoptorootViewController激活:是]
,而无需任何其他详细信息,除非“重置”应用程序上的第一个视图控制器已激活,以下操作可能会满足您的需要
-(void)applicationDidBecomeActive:(UIApplication *)application
{
UIStoryboard *storyboard = self.window.rootViewController.storyboard;
UIViewController *firstViewController = [storyboard instantiateInitialViewController];
self.window.rootViewController = firstViewController;
}
如果你的应用程序基于UINavigationController,你可以在
ApplicationIDBecomeActive:
中调用[mainNavigationController PoptorootViewController Inimated:YES]
调用
?感谢所有这些伟大的答案,我将对此进行调查@我需要你的帮助。我可以给你发电子邮件吗?当然可以!!!!不过,您可能会将其发送到错误的位置:)您的初始视图控制器是一个UINavigationController
?感谢所有这些伟大的答案,我将对此进行调查@我需要你的帮助。我可以给你发电子邮件吗?当然可以!!!!不过,您可能会将其发送到错误的位置:)