2016-11-20 8 views
0

У меня есть функция «Проверка», которая проверяет, был ли объект обновлен, если это так, пользователь отправляется на другой контроллер представления. Тем не менее, NSTimer продолжает повторяться, я хочу, чтобы он остановился после того, как пользователь отправлен на другой контроллер представления.Как вызвать NSTimer до тех пор, пока селектор не будет успешным

func check(){ 
    let current = PFUser.currentUser()?.objectForKey("username") 
    let check = PFQuery(className: "Requests") 
    check.whereKey("username", equalTo: current!) 
    check.whereKey("requestResponded", equalTo: "True") 
    check.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in 
     if error != nil || objects == nil{ 
      print("Request rejected.") 
     } else { 
      for object in objects!{ 
       let service = object["service"] as! NSValue 
       print(service) 
       if service == 1{ 
        self.performSegueWithIdentifier("detailedRequest", sender: self) 
        print("detailedRequest") 
       } else { 
        self.performSegueWithIdentifier("normalRequest", sender: self) 
        print("normal") 
       } 
      } 
      print("Successfully retrieved that object.") 
     } 
    }) 
} 

self.timer = NSTimer.scheduledTimerWithTimeInterval(10.0, target: self, selector: #selector(self.check), userInfo: nil, repeats: true) 
+0

Не Разбираем функциональность уведомления, когда объект был обновлен? – vadian

ответ

0

Объявите viewDidDisappear функцию и внутри него аннулированию таймер. Эта функция автоматически вызывается каждый раз, когда ваш viewController исчез.

Что-то вроде этого:

override func viewDidDisappear(_ animated: Bool) { 
    super.viewDidDisappear(true) 
    self.timer.invalidate() 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^