应用程序从后台返回前景时的密码视图

时间:2017-12-02 05:28:28

标签: ios swift uiview background foreground

我正在开发一个应用首次启动时需要密码的应用,或者从后台返回到前台。 首次发布很容易。但是当app从后台返回前台时,输入密码后,如何返回上次访问的视图? 请帮帮我! 我想在appDelegate中添加密码UIView,但我不知道该怎么做。这是对的吗?

let pwview = UIView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height))
pwview.backgroundColor = UIColor.black
UIApplication.shared.keyWindow?.addSubview(pwview)

这不起作用。

2 个答案:

答案 0 :(得分:0)

您可以使用app delegate的方法来处理此问题。

func applicationWillEnterForeground(_ application: UIApplication) {
   // Called when app comes to foreground
}

extension UIApplication {

class func topViewController(base: UIViewController? = (UIApplication.sharedApplication().delegate as! AppDelegate).window?.rootViewController) -> UIViewController? {
if let nav = base as? UINavigationController {
  return topViewController(base: nav.visibleViewController)
}
if let tab = base as? UITabBarController {
  if let selected = tab.selectedViewController {
    return topViewController(base: selected)
  }
}
if let presented = base?.presentedViewController {
  return topViewController(base: presented)
}
return base
}

}

您可以使用app delegate中的上述方法获取顶视图控制器并显示在其上。

答案 1 :(得分:0)

使用pwview创建一个pwViewController并从当前视图控制器

显示它
viewController.present(pwViewController, animated: true, completion: nil)

然后在您登录时再次关闭它