Обратный вызов в UITabBarController

У меня есть 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)
}

Блокировщик экрана

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 вкладки не вызывается. Когда я удалил ViewDidAppear на панели вкладок, все было в порядке. Когда я снова добавил пустой ViewDidAppear на панель вкладок, возникла та же проблема. Есть ли проблема с ViewDidAppear UITabBarController? любое предложение?


person Hamed    schedule 27.02.2019    source источник
comment
ViewWillAppear позвонит с этим.   -  person Dharmesh Kheni    schedule 27.02.2019
comment
Отлично, спасибо большое, не могу понять почему? Не могли бы вы объяснить это в ответ? или любая связанная ссылка?   -  person Hamed    schedule 27.02.2019


Ответы (1)


Для этого вы можете использовать метод ViewWillAppear.

Для получения дополнительной информации о жизненном цикле приложения вы можете прочитать ЗДЕСЬ .

И ЗДЕСЬ находится документ Apple.

person Dharmesh Kheni    schedule 27.02.2019