【问题标题】:How to restart an app when resumes from multi-tasking从多任务恢复时如何重新启动应用程序
【发布时间】:2015-08-19 06:04:51
【问题描述】:

所以我的应用依赖于互联网连接,每次从主屏幕打开应用时,它都会使用可达性进行检查,然后允许用户继续或告诉他们连接。然而,我的问题是,当应用程序从多任务处理中恢复时,它会跳过初始视图控制器并直接进入它们所在的位置。从多任务处理恢复时,有什么方法可以让应用程序刷新或重新启动?

谢谢

编辑 使用此代码时:

let storyboard = UIStoryboard(name: "MainStoryboard", bundle: nil)
self.window.rootViewController = MainStoryboard.instantiateInitialViewController()

我收到预期的声明错误。

【问题讨论】:

    标签: ios swift restart multitasking


    【解决方案1】:

    您可以使用导航控制器:

        let vc = self.storyboard!.instantiateViewController(withIdentifier: "FirstPageViewController") as! FirstPageViewController
        self.navigationController?.pushViewController(vc, animated: true)
    

    【讨论】:

      【解决方案2】:

      我刚刚在 plist 中添加了以下内容: “应用程序不在后台运行”并将其设置为“是”

      似乎工作正常。

      【讨论】:

      • 我确定这是最好的选择。
      • @KarloA.López 是的 - 刚刚找到它。你知道这是否会对调试控制台产生影响,因为现在当我的应用离线时它不会像它应该打印的那样打印“你离线”......
      【解决方案3】:

      您可以设置您的根视图控制器,它会重新启动您的主 VC。假设您使用故事板:

      (self 指的是您的 AppDelegate)

      斯威夫特:

      let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil)
      self.window.rootViewController = storyboard.instantiateInitialViewController()
      

      目标-C:

      self.window.rootViewController = [[UIStoryboard storyboardWithName:@"MyStoryboardName" bundle:nil] instantiateInitialViewController];
      

      【讨论】:

      • 好的,我会把它放在应用程序委托文件中吗?另外如何设置我的根视图控制器? @Asaf
      • 我建议你这样做。根 vc 是应用委托的属性。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-01
      • 1970-01-01
      相关资源
      最近更新 更多