У меня есть страница входа в систему, которая переходит к остальной части приложения. В остальной части моего приложения остальные контроллеры представлений простираются от моего собственного «BaseViewController».Выход из приложения с использованием NSTimer
У меня возникает следующий вопрос?
import UIKit
class BsgBaseViewController: UIViewController {
var nsTimerObj: NSTimer!
func resetTimer(addTimeToTimeOutThread: NSTimeInterval){
nsTimerObj?.invalidate()
let nsTimerObjTemp = NSTimer.scheduledTimerWithTimeInterval(10.0, target: self, selector: "handleIdleEvent:", userInfo: nil, repeats: false)
nsTimerObj = nsTimerObjTemp
}
func handleIdleEvent(timer: NSTimer) {
let createAccountErrorAlert: UIAlertView = UIAlertView()
createAccountErrorAlert.delegate = self
createAccountErrorAlert.title = ("Title")
createAccountErrorAlert.message = "Due to the security policies your session has been timed out. We have to log you out."
createAccountErrorAlert.addButtonWithTitle("OK")
createAccountErrorAlert.show()
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
print("user touched")
self.resetTimer(HardCodedValues().hardCodedTimeOutApplication)
}
override func viewDidAppear(animated: Bool) {
self.resetTimer(HardCodedValues().hardCodedTimeOutApplication)
print("appear")
}
override func viewWillDisappear(animated: Bool) {
self.resetTimer(HardCodedValues().hardCodedTimeOutApplication)
print("disappear")
}
}
метод
touchesBegan()
не уволят при нажатии наUITextField
илиUITextView
.У меня есть Настройки
UIViewController
сUISegmentedControl
с двумя контейнерами и двумяUIViewController
. Все эти триUIViewController
происходят от моегоBaseViewController
. Когда я нажимаю на другие дваUIViewController
, создаются три экземпляраBaseViewController
, которые я хочу избежать.
Пункт № 2: То, что вы видите, - это то, как работают производные объекты. Подкласс - это реализация его родительского класса ... плюс некоторые вещи. –
@Phillip Mills, чего я хочу достичь, это выйти из моего приложения через определенный промежуток времени. – Cloy
Все в порядке. Я говорю о том, что включение таймера в базовый класс с несколькими дочерними элементами не имеет смысла, если вы хотите только один таймер для приложения. Детали того, что он делает и как он получает сброс, не имеют большого значения, пока структура не соответствует тому, что вам нужно. –