2016-12-13 2 views
0

Я использую этот простой код непосредственно перейти:Действие запускается автоматически после того, как программный Segue

self.performSegue(withIdentifier: "showSeqTwo", sender: self) 

После этого Segue, мне нужен таймер в контроллере автоматического запуска. Проблема заключается в том, что обычно запуск таймера осуществляется нажатием кнопки воспроизведения, а затем приостанавливается и перезапускается по желанию. Пользователь также может прокручивать этот контроллер, и в этом случае таймер не должен запускаться. Могу ли я послать какой-то сигнал с этим конкретным сегментом, чтобы программно «нажать» кнопку и запустить таймер?

+1

Использовать подготовить (для segue :) в исходном представлении contr oller и установить флаг в контроллере представления назначения, указывающий, каково должно быть состояние таймера/кнопки. в контроллере представления места назначения проверьте значение флага в viewDidLoad – Gruntcakes

+0

@Essence ... какое событие лучше всего работает, ** viewDidLoad() или viewWillAppear(). Мне нравится ваш ответ, но я использую viewWillAppear() в своих приложениях. Это имеет значение? – dfd

ответ

1

Вы можете отправить переменную, которая читается в функции viewDidLoad() второго viewController, и определить, должна ли кнопка воспроизведения активироваться.

Добавить функцию в нижней части первого ViewController так:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "showSeqTwo" { 
     let destination = segue.destination as! NameOfSecondViewControllerClass 
     destination.segueFlag = 1 
    } 
} 

Внутри второй ViewController, добавьте следующую переменную в класс:

var segueFlag = 0 

Внутри viewDidLoad() из второй viewController, добавьте следующий код

if segueFlag == 1 { 
    // Add function to start play button here 
} 
Смежные вопросы