u84*_*six 1 uiviewcontroller ios swift ios9 xcode7
我想创建一个UIViewController,其超时会在一段时间后展开segue,但会检测屏幕活动何时并重置计时器.如果设备闲置在那里,请考虑一个密码输入屏幕,您希望屏幕超时.我想iphone/ipad会超时,然后当你解锁并返回该应用程序时,我希望segue在这种情况下放松.对此最好的方法是什么?
Decalare计时器
var timer = NSTimer() 
在你viewDidLoad做的时候把计时器设置为你喜欢的任何东西
这terminateApp将在60秒后调用
timer = NSTimer.scheduledTimerWithTimeInterval(60, target: self, selector: Selector("terminateApp"), userInfo: nil, repeats: true)
func terminateApp(){
    // Do your segue and invalidate the timer
    timer.invalidate()
}
但是,如果用户按下您要使计时器无效并启动新计时器的视图,请执行以下操作:
在你的viewDidLoad添加中gestureRecognizer,当用户触摸屏幕时会调用resetTimer:
let resetTimer = UITapGestureRecognizer(target: self, action: "resetTimer");
self.view.userInteractionEnabled = true
self.view.addGestureRecognizer(resetTimer)
func resetTimer(){
    // invaldidate the current timer and start a new one
    timer.invalidate()
    timer = NSTimer.scheduledTimerWithTimeInterval(60, target: self, selector: Selector("terminateApp"), userInfo: nil, repeats: true)
}
| 归档时间: | 
 | 
| 查看次数: | 1663 次 | 
| 最近记录: |