self.navigationController返回nil

时间:2016-09-06 13:07:28

标签: ios swift uinavigationcontroller nstimer

在我的应用程序中,我有计时器,每个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是零!

是因为计时器?或者是什么?

0 个答案:

没有答案