2015-11-07 4 views
0

Я новый программист, и у меня есть 2 контроллера вида, и после того, как моя игра закончилась, появляется предупреждение с кнопкой «играть снова».Возврат на главный контроллер?

Вместо перезапуска игры после таймера на контроллере второго представления я хочу, чтобы воспроизведение снова возвращалось к первому контроллеру представления, в котором есть кнопка воспроизведения. Что я делаю? У меня есть код ниже предупреждения:

func subtractTime() { 
    seconds-- 
    timerLabel.text = "Time: \(seconds)" 

    if(seconds == 0) { 

     timer.invalidate() 
     let alert = UIAlertController(title: "Time is up!", 
      message: "You scored \(count) points", 
      preferredStyle: UIAlertControllerStyle.Alert) 
     alert.addAction(UIAlertAction(title: "Play Again", style: UIAlertActionStyle.Default, handler: { 
      action in self.setupGame() 
     })) 
     presentViewController(alert, animated: true, completion:nil) 


    } 
} 

ответ

0

Это обычно может быть сделано с помощью SEGUE, который говорит раскадровку для подключения к другому контроллеру представления, когда указанное действие называется

Для Segue, вам нужно сначала установите segue в своей доске объявлений, объявив для нее идентификатор. Затем в функции вы можете вызвать

performSegueWithIdentifier("segueId", sender: nil) 

Я считаю, что вы также можете сделать сразу после presentViewController

let mainViewController = yourMainControllerName(); 
presentViewController(mainViewController, animated: true, completion: nil) 

Теперь, вы должны поместить либо один из них в обработчике после того, как пользователь отменил его в боевую готовность. addAction

alert.addAction(action in self.setupGame() UIAlertAction(title: "Play Again", style: UIAlertActionStyle.Default, handler:{(ViewController: UIViewController!) in let mainViewController: secondViewController = segue.mainViewController as secondViewController} 
Смежные вопросы