在我的应用程序中,我有计时器,每个0.3秒调用一个函数,当计时器通过1分钟时,我应该弹出到前面的视图控制器。
updateProgressTimer = NSTimer.scheduledTimerWithTimeInterval(0.3, target: self, selector: #selector(TaskDetailsViewController.updateProgress), userInfo: nil, repeats: true)
我像这样进入计时器视图控制器:
if let vc = self.storyboard!.instantiateViewControllerWithIdentifier("task-details-viewController") as? TaskDetailsViewController {
self.navigationController?.pushViewController(vc, animated: true)
}
并在通过60分钟后退出控制器,如下所示:
self.navigationController?.popViewControllerAnimated(true)
有时self.navigationController返回nil !!
计时器调用的函数如下:
func updateProgress() {
if let time = NSUserDefaults.standardUserDefaults().objectForKey("ProgressTimeValue") as? NSDate {
if NSDate().secondsFrom(time) > 60 {
self.navigationController?.popViewControllerAnimated(true)
}
}
else {
let progressvalue = (NSDate().secondsFrom(time))/60
circularProgress?.progress = progressvalue
timerLabel.text = Int(NSDate().secondsFrom(time)).description
}
}
}
所以在1分钟后,计时器的viewcontroller没有弹出到前一个,因为self.navigationController是零!
是因为计时器?或者是什么?