Как отправить несколько переменных через segue - PullRequest
0 голосов
/ 29 апреля 2018

Как я могу послать несколько переменных через seigh в Swift? QBBust отправляется в порядке и печатается на контроллере представления, но QBName по какой-то причине не отправляется. Кто-нибудь может определить, почему?

        if let send = sender as? Double{
            destination.QBBust = send
        }
        if let sent = sender as? String{
            destination.QBName = sent
        }
    }
}

private var _QBName:String!
var QBName: String{
    get{
        return _QBName
    } set {
        _QBName = newValue
    }
}

private var _QBBust:Double!
var QBBust: Double {
    get {
        return _QBBust
    } set{
        _QBBust = newValue
    }
}

override func viewDidLoad() {
    super.viewDidLoad()
    let bust = String(Int(_QBBust))
    QBBustLabel.text = "\(bust)%"

    QBNameLabel.text = _QBName
}

Следующая часть находится в функции кнопки, которая вызывает переход

performSegue(withIdentifier: "QBResultVC", sender: QBBust)

performSegue(withIdentifier: "QBResultVC", sender: QBName)

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Как и в ответе Tiago, вы можете создать новую структуру или класс, который имеет свойства QBName и QBBust. Кроме того, вы также можете использовать кортеж в Swift.

Это пример:

в Destination ViewController

объявить var QBInfo:(name: String, bust: Double)?

и в функции кнопки, которая вызывает переход

let QBInfo = (name: QBName, bust: QBBust)
performSegue(withIdentifier: "QBResultVC", sender: QBBust) 

затем в prepareForSegue:sender: метод

destination.QBInfo = QBInfo

0 голосов
/ 29 апреля 2018

Этот вопрос повторяется, но вы можете создать Struct или новый класс и сохранить ваши данные в виде свойств и отправить объект 'transport' в segue.

Подробнее смотрите этот ответ:

Быстрая отправка нескольких объектов на View Controller

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...