Ich habe eine Anmeldeseite, die den Rest der Anwendung segelt. Im Rest meiner Anwendung erstrecken sich die restlichen View-Controller von meinem eigenen definierten 'BaseViewController'.Logout-Anwendung mit NSTimer
Ich habe die folgende Frage?
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")
}
}
das Verfahren
touchesBegan()
nicht gefeuert wird erhalten, wenn aufUITextField
oderUITextView
klicken.Ich habe eine Einstellungen
UIViewController
mit einerUISegmentedControl
mit zwei Behältern und zweiUIViewController
. Alle diese dreiUIViewController
stammen von meinerBaseViewController
. Wenn ich auf die anderen zweiUIViewController
klicke, werden drei Instanzen vonBaseViewController
erstellt, die ich vermeiden möchte.
Punkt # 2: Was Sie sehen, ist, wie abgeleitete Objekte funktionieren. Eine Unterklasse ist eine Implementierung ihrer Elternklasse ... plus ein paar Sachen. –
@Phillip Mills, was ich erreichen möchte, ist meine Anwendung nach einer gewissen Zeit abmelden. – Cloy
Das ist in Ordnung. Was ich sage ist, dass das Setzen der Timer-Logik in einer Basisklasse, die mehrere Kinder hat, keinen Sinn ergibt, wenn Sie nur einen Timer für die App haben wollen. Die Details dessen, was es tut und wie es zurückgesetzt wird, sind nicht wirklich wichtig, bis die Struktur dem entspricht, was Sie brauchen. –