当应用程序从后台返回时显示视图控制器(iOS 13)

时间:2019-10-05 19:49:27

标签: ios swift ios13

我想在我的应用每次从后台返回时显示一个密码提示(相信我,这很有意义,这并不烦人;它类似于1Password所做的事情)。

因此,每次应用进入前台每10分钟时,我都需要显示一个ViewController。

我尝试了很多,但似乎无法正常工作。例如:

func applicationWillResignActive(_ application: UIApplication) {
    print("called it")
}

func applicationDidBecomeActive(_ application: UIApplication) {
    print("called it")
}

func applicationWillEnterForeground(_ application: UIApplication) {
    print("called it")
}

这些方法根本不会在我的设备上调用。请注意,该应用程序仅适用于iOS 13。有一些我不理解的变化(场景?)。

有人有主意吗?

谢谢。

1 个答案:

答案 0 :(得分:3)

您应使用通知中心

    NotificationCenter.default.addObserver(self, selector: #selector(showThePasswordViewController), name: UIApplication.didBecomeActiveNotification, object: nil)

添加此行代码后,可能会在您的主视图 viewDidLoad()方法中,您还需要一个名为 showThePasswordViewController()的函数或任何您想调用的函数。确保在添加观察者的同一视图中这样声明它:

    @objc showThePasswordViewController() {
    //your code to present it
    }

不要因“ @objc”而气disc,这并不意味着您需要用Objective-C编写。还要记住,当添加观察者时,将函数名称写在 #selector 之后的括号中,而在上面的括号()中则没有这样的括号,如上所示。希望能帮上忙,汉斯。