Swift &引用;“放松”;从任何视图控制器返回到情节提要';s初始视图控制器
先决条件(Swift):Swift &引用;“放松”;从任何视图控制器返回到情节提要';s初始视图控制器,swift,storyboard,Swift,Storyboard,先决条件(Swift): 我有一个应用程序,在一个故事板上有许多视图控制器 有一个导航控制器,但前几个视图控制器不在其中。(我指出b/c我不能在这里“跳到根目录”。) x分钟后会触发“会话过期”事件 用例: 无论用户在哪个屏幕上,如果我看到“会话已过期”通知,我希望将用户发送回故事板的初始视图控制器 我的问题: 如果不在每个视图控制器上手动创建展开序列,我该如何实现这一点?是否有某种方法可以“抛弃”故事板的当前实例并从头开始 (我不担心记住他们的当前状态和其他情况……这与此场景无关。它过期了,他
(我不担心记住他们的当前状态和其他情况……这与此场景无关。它过期了,他们输了,他们重新开始。)最好的解决方案是使用故事板id导航到viewcontroller 单击main.storyboard并单击viewcontroller。在标识检查器上,启用情节提要使用情节提要ID并为其提供ID
let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let vc : UINavigationController = storyboard.instantiateViewControllerWithIdentifier("mainNavigationStoryBoard") as! UINavigationController
self.presentViewController(vc, animated: true, completion: nil)
在session过期后,只需使用上面的代码导航到特定的viewcontroller您就可以从故事板标识符中“抓取”相关的viewcontroller-正如Pawan Araballi在他的回答中所说-并在AppDelegate上设置窗口.rootViewController
属性。
我认为这种方法比在已有的UI上显示viewController要好