2015-09-28 3 views
0

Я пытаюсь передать ввод текста со следующего ViewController:Segue анахронизм

class ViewController: UIViewController, UITextFieldDelegate { 

    @IBOutlet weak var inputField: UITextField! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     inputField.delegate = self 

     let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard") 
     view.addGestureRecognizer(tap) 
    } 

    func dismissKeyboard() { 
     inputField.resignFirstResponder() 
    } 

    func textFieldDidEndEditing(inputField: UITextField) { 
     let info = inputField.text 
     performSegueWithIdentifier("goToBlue", sender: info) 
    } 

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

     if segue.identifier == "goToBlue" {  
      if let blueVC = segue.destinationViewController as? BlueViewController {     
       if let sentValue = sender as? String { 
        blueVC.receptacle = sentValue 
        print(blueVC.receptacle) 
       } 
      } 
     } 
    } 
} 

Для этого ViewController:

class BlueViewController: UIViewController { 

    @IBOutlet weak var blueText: UILabel! 
    var receptacle = "fail" 

    override func viewWillAppear(animated: Bool) { 
     super.viewWillAppear(animated) 
     print(receptacle) 
     blueText.text = receptacle 
     print(receptacle) 
    } 
} 

print заявление в первых ViewController выходов корректно, однако выход для print Операторы во втором ViewController: failfail, а метка на втором представлении читает «fail».

В связи с этим у меня есть причина полагать, что это вопрос времени.

Я прав? Как это исправить?

+0

Этот код работает для меня. Как именно вы подключили свой сеанс? – vacawama

+0

из текстового поля, на которое ссылается как входной элемент на BlueViewController @vacawama –

ответ

0

Если вы хотите, чтобы вызвать ваше SEGUE программно, вам необходимо подключить ваш goToBlue SEGUE из ViewController иконки вашего от ViewController к BlueViewController:

how to wire the segue

Не забудьте установить Идентификатор of Скелет Segue в Атрибут Инспектор - goToBlue.

+0

Ничего себе, что сработало. Почему это не работает с textField? @vacawama –

+0

Это предупреждение, которое я получаю, когда я подключил его из поля ввода. Предупреждение. Попытайтесь представить в , чей вид не находится в иерархии окон! – vacawama

+0

Я всегда видел, что вам нужно подключить его, как я показал, если вы хотите запрограммировать программу segue. – vacawama

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