【问题标题】:Exiting app and going back to home screen using swift 4使用 swift 4 退出应用程序并返回主屏幕
【发布时间】:2018-10-04 05:00:39
【问题描述】:

我正在使用 UITabbarController。我在 UITabbarController 中有 3 个项目/选项卡。每个选项卡都描绘了单独的视图控制器。视图列表如下

  • 选项卡 1:列表视图控制器
  • 标签 2:收藏视图控制器
  • 标签 3:联系人视图控制器

现在假设我在选项卡 3(联系人视图控制器)上。在这里,我向我的用户展示了一个 UIAlertController,它有一个“退出应用程序”按钮。

当用户点击退出应用程序时,用户应该离开我们的应用程序并被带到主屏幕。

我已尝试遵循 SO 的 sn-ps,但没有任何效果。

self.view.window!.rootViewController?.dismiss(animated: true, completion: nil)

我什至读到要执行exit(integer number) 以退出应用程序,但我也读到它不应该这样做。

所以我真的很困惑我需要做什么才能退出应用程序?如何使用 Swift 4 退出应用程序并返回主屏幕?

【问题讨论】:

  • exit 与任何方法一样好,但在您的应用程序中设置“退出”按钮通常不是一个好主意;这就是 iPhone X 的主页按钮或底部区域的用途。
  • @Paulw11 我在某处读到 App Store 不接受使用 Exit 的应用程序
  • 为什么要退出应用程序?正如@Paulw11 提到的,用户还有其他方法可以做到这一点,并且可以随时这样做。如果您完成了某个过程并且没有自然的“下一步”,您应该通知用户该操作已完成并恢复到您的初始视图控制器,以便他们可以为另一个项目再次执行此操作。
  • 应用程序应该只是坐在那里等待用户选择位置或其他内容。如果他们不想这样做,他们可以按主页按钮

标签: ios swift uiviewcontroller uitabbarcontroller


【解决方案1】:

退出应用程序不是一个好主意。 @Cristik 在 cmets 中提供的 URL 还表明,如果苹果知道它,他们会向您发送通知以删除它。

最好保留正确的UIAlert 消息,告诉用户使用该应用程序需要什么。还有适当的 UI 导航,以首先获取业务逻辑所需的所有内容,以便用户在使用应用程序之前不会错过任何内容。

如果您仍然想使用这个,那么正如@Cristik 评论的那样尝试这个解决方案:

【讨论】:

    【解决方案2】:

    你可以使用:

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    
    let loginVcObj = storyboard.instantiateViewController(withIdentifier: "SignInVc") as! SignInVc
    
    var vcArray = (applicationDelegate.window?.rootViewController as! UINavigationController).viewControllers
    vcArray.removeAll()
    vcArray.append(loginVcObj)
    
    (applicationDelegate.window?.rootViewController as! UINavigationController).setViewControllers(vcArray, animated: false)
    

    【讨论】:

    • 此代码用于导航到 HomeScreen .. 因为您无法在应用程序中终止应用程序。 AppStore 团队将拒绝您的应用。
    • 所以你认为退出 (0) 不好
    • 我没有使用导航控制器
    猜你喜欢
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    相关资源
    最近更新 更多