使用 swift 4 退出应用程序并返回主屏幕
Posted
技术标签:
【中文标题】使用 swift 4 退出应用程序并返回主屏幕【英文标题】:Exiting app and going back to home screen using 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 提到的,用户还有其他方法可以做到这一点,并且可以随时这样做。如果您完成了某个过程并且没有自然的“下一步”,您应该通知用户该操作已完成并恢复到您的初始视图控制器,以便他们可以为另一个项目再次执行此操作。
How does Booking.com close their app programmatically?的可能重复
应用程序应该只是坐在那里等待用户选择位置或其他内容。如果他们不想这样做,他们可以按主页按钮
【参考方案1】:
退出应用程序不是一个好主意。 @Cristik 在 cmets 中提供的 URL 还表明,如果苹果知道它,他们会向您发送通知以删除它。
最好保留正确的UIAlert
消息,告诉用户使用该应用程序需要什么。还有适当的 UI 导航,以首先获取业务逻辑所需的所有内容,以便用户在使用应用程序之前不会错过任何内容。
如果您仍然想使用这个,那么正如@Cristik 评论的那样尝试这个解决方案:
How does Booking.com close their app programmatically?【讨论】:
【参考方案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) 不好 我没有使用导航控制器以上是关于使用 swift 4 退出应用程序并返回主屏幕的主要内容,如果未能解决你的问题,请参考以下文章
无法使应用程序进入主菜单(Swift 4 SpriteKit)
Swift 3D Touch iOS 10 主屏幕快速操作分享项目丢失