Сначала настройте свойство/свойства, чтобы удерживать переменные в вашем втором контроллере представления (место назначения).
class YourSecondViewController: UIViewController {
var duration:Double?
}
После этого ваша кнопка запускает ваш пользовательский сегмент. Используйте переменную («продолжительность») в качестве аргумента для отправителя.
class YourFirstViewController: UIViewController {
@IBAction func buttonTapped(sender: AnyObject) {
self.performSegueWithIdentifier("MainToTimer", sender: duration)
}
}
Наконец, передать этот отправитель данных путем переопределения метода prepareForSegue:
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "MainToTimer") {
let secondViewController = segue.destinationViewController as YourSecondViewController
let duration = sender as Double
secondViewController.duration = duration
}
}
Да, можно также передать несколько переменных и констант, снова используя параметр «отправителя» в prepareForSegue. Если у вас есть несколько данных, которые вы хотите передать, поместите их в массив и сделайте этот массив отправителем.
Возможный дубликат [Как вы передаете данные между диспетчерами просмотра в Swift?] (Http://stackoverflow.com/questions/25215476/how-do-you-pass-data-between-view-controllers-in- swift) – Paulw11