![](/img/trans.png)
[英]How can I stop Google analytics tracking session when my app enters into background?
[英]How can I make my app pop to a VC when the app enters the background?
我已经尝试了一段时间,以弄清楚当用户离开应用程序时如何使我的应用程序弹出回到我的initialVC,以便当他们回来时,打开的视图是主页,而不是他们离开的视图。用。 这段代码是我放入appDelegate文件中的代码。 现在,我收到一条错误消息,提示使用未解决的标识符'presentViewController'。请注意,我的应用程序有一个主VC(嵌入在导航控制器中),该主VC具有2个按钮,每个按钮都指向一个不同的tableViewController(它们都还嵌入了)在导航控制器中)。
func applicationDidEnterBackground(application: UIApplication) {
var storyboard = UIStoryboard(name: "MainStoryboard", bundle: NSBundle.mainBundle())
if let myVC = storyboard.instantiateViewControllerWithIdentifier("Home") as? ViewController {
presentViewController(myVC, animated: true, completion: nil)
}
}
您可以在进入后台或进入前台时更改RootViewController。
let storyBoard = UIStoryboard(name: "Main", bundle: nil)
if let controller = storyBoard.instantiateViewControllerWithIdentifier("") as? UIViewController {
self.window?.rootViewController = controller
}
您不应在iOS世界中尝试此行为,因为它可能会导致拒绝。 根据苹果的指导原则:
尽可能以最详细的级别停止时,请保存当前状态。 这样,人们切换回您的应用程序时不会失去上下文。 例如,如果您的应用程序显示滚动数据,请保存当前滚动位置。 您可以在iOS版《应用程序编程指南》中的“在启动过程中保持应用程序的视觉外观”中了解有关保存和恢复应用程序状态的有效方法的更多信息。
也许最好的解决方案是不允许该应用在后台运行。 这样,每次用户启动您的应用程序时,它将重新启动。
您无法从应用程序委托中显示视图控制器,因此会出现错误。
但是,尽管如此,如果您想弹出到初始视图控制器(即“根视图控制器”),并且正在使用UINavigationController
,则可以这样做:
func applicationDidEnterBackground(application: UIApplication) {
var navigationController = application.windows[0].rootViewController as UINavigationController
navigationController.popToRootViewControllerAnimated(false);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.