2015-06-03 5 views
0

Я искал все для ответа на этот вопрос ... Я не знаю, как передавать данные через разматывание. Я знаю, что я должен использовать prepareForSegue, но я не уверен, что я должен поставить в Я пытаюсь передать переменную (MyLabel) из UIPickerView в одном классе:.Передача данных через unind segue

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
    myLabel.text = pickerData[row] 
} 

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

Сообщите мне, если мой вопрос нуждается в уточнении.

ответ

1

Если я правильно понимаю ваш вопрос, вы должны сделать что-то вроде этого:

class MyPickerController : UIViewController { 
    @IBOutlet weak var myLabel: UILabel! 

    var pickerData:[String] 

    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
    myLabel.text = pickerData[row] 
    performSegueWithIdentifier("mySegueName", sender: self) 
    } 

    func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if let myController = segue.destinationController as? MyDestinationViewController { 
     myController.text = myLabel.text 
    } 
} 

Это будет передать текст подписи к экземпляру MyDestinationViewController. Обратите внимание, что я не передаю объект UILabel, а текст. Вы не можете поместить этот объект UILabel в интерфейс контроллера назначения, но вы можете использовать, например, текст, например, другую метку.

+0

Мне пришлось добавить переменную NSString в MyDestinationViewController, но кроме этого ваше решение сработало, спасибо! – jsjs2626

+0

Добро пожаловать. Рекомендуется использовать String вместо NSString. – ncerezo

1

prepareForSegue называется в классе контроллера представления, что вы будете размотки от (контроллер представления, который ранее был толкнул или представлен, и в настоящее время совал или уволен). Контроллер представления назначения segue - это контроллер вида, который появится в результате.

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