У меня есть 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? любое предложение?
ViewWillAppear
позвонит с этим. - person Dharmesh Kheni   schedule 27.02.2019