在UITabBarController中回调

问题描述 投票:0回答:1

我有一个UITabBarController和一个名为ScreenLocker的类,在UITabBarController / ViewDidApear中我使用回调初始化ScreenLocker,c秒后屏幕锁定器或当应用程序转到后台时应该调用此回调,

class TabBarViewController: UITabBarController {

override func viewDidLoad() {

}

override func viewDidAppear(_ animated: Bool) {
    lockAppCallBack()
}

func lockAppCallBack() {
    let callBack = {
        let myModalViewController = R.storyboard.authentication.authenticationViewController()
        ScreenLocker.isAutoLocked = true
        myModalViewController!.modalPresentationStyle = UIModalPresentationStyle.fullScreen
        myModalViewController!.modalTransitionStyle = UIModalTransitionStyle.coverVertical
        self.present(myModalViewController!, animated: true, completion: nil)
    }
    AuthenticationPatternPresenter.initScreenLocker(callBack: callBack)
}

ScreenLocker

class ScreenLocker: NSObject{
static var isAutoLocked = false
static let instance : ScreenLocker = {

    let instance = ScreenLocker()
    return instance
}()

var timer:Timer!
var time:Int!
var callBack = {

}
func _init(time:Int, callBack: @escaping () -> ()){

    self.time = time
    self.callBack = callBack
}

每个选项卡都有一个UINavigationController一切正常,但是当我更改UITabBarController的选项卡并导航到下一个视图并返回上一个视图时,选项卡的ViewDidAppear不会调用。当我删除Tab栏的ViewDidAppear时,每件事都没问题,当我在标签栏中再次添加一个空的ViewDidAppear时,出现了同样的问题。 UITabBarController的ViewDidAppear有什么问题吗?有什么建议吗?

ios swift callback uitabbarcontroller viewdidappear
1个回答
1
投票

您可以使用ViewWillAppear方法。

有关应用程序生命周期的更多信息,您可以阅读HERE

HERE是苹果医生。

© www.soinside.com 2019 - 2024. All rights reserved.