2016-06-30 6 views
1

Вот что я пытаюсь сделать:Как выполнить действия на основе segue

У меня 2 просмотра, настроек и главного экрана.

Я закодировал segue, чтобы произойти, когда нажимается кнопка в Настройках, переходя на главный экран. Идентификатор «перезагружен».

Я пытаюсь, чтобы на главном экране выполнялся ряд действий, если этот сеанс запущен, но я не могу найти функцию или способ сделать это.

Любая помощь в том, как это реализовать? Я бы хотел, чтобы он срабатывал, когда происходит седж.

+1

По просмотрам вы имеете в виду контроллер, потому что segue используется между контроллером? И почему бы вам не назвать свою функцию в 'viewDidAppear' (или' viewWillAppear') вашего MainScreen? – Chajmz

ответ

1

Вы можете передать аргументы на главный экран в функции prepareForSegue на странице настроек. Затем на главном экране вы можете поместить чеки в свою функцию viewWillAppear, чтобы обрабатывать их по своему усмотрению.

Пример:

В настройках:

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { 
    if (segue.identifier == "reset") { 
     // pass data to next view 
     let viewController:ViewController = segue!.destinationViewController as MainViewController 
     viewController.settings = settings // where settings is what you want to pass 
    } 
} 

В главном экране:

override func viewWillAppear(animated: Bool) { 
    super.viewWillAppear(animated) 
    if self.settings { // Do something } 
} 
+0

Это сработало, спасибо! – Alex

0

Если Вы желаете что-то должно произойти, когда segued-контроллер запускается вы можете это сделать в нескольких местах.

Если вы хотите, чтобы событие произошло в момент запуска segue, выполните свой код внутри prepareForSegue. Там вы можете проверить поле идентификатора объекта UIStoryboardSegue для «сброса», и если оно истинно, вызовите свою логику.

Если вы хотите, чтобы это произошло, когда диспетчер режима назначения загружается или появляется, сделайте это внутри его методов viewDidLoad или viewDidAppear. В вашем случае эти методы будут существовать в классе контроллера вида «Главный экран».

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