重新加载应用程序,就像它在进入前台时被杀死一样

Reload the app as if it was killed when entering foreground

我有一个使用 Tab bar 模板制作的应用程序(因此在该应用程序中有一个故事板和两个视图控制器)。

有时此应用程序可能会进入后台(例如,用户按下主页按钮,然后再次打开应用程序):当 applicationDidBecomeActive 在 [=12] 时是否可以完全重新加载 (*) 应用程序=] 火了?

(*) 完全重新加载意味着标签栏控制器 viewDidLoad 再次触发:应用程序应该表现得好像它已被杀死

我确定你这样做有充分的理由,否则它就是灾难的完美处方:D

无论如何,您可以通过在 applicationDidBecomeActive 中使用

重置应用程序的 rootView 控制器来实现它
    self.window?.rootViewController = nil
    let storyBoard = UIStoryboard(name: "Main", bundle: nil)
    let vc = storyBoard.instantiateInitialViewController()
    self.window?.rootViewController = vc

或者,如果您的标签栏控制器不是 rootViewController,您可以实例化一个新的标签栏控制器并在丢弃旧控制器的同时加载它。