2016-06-04 2 views
0

Я новичок в быстром, и я пытаюсь сделать экран лобби с текстовым полем и кнопкой, чтобы перейти к следующему экрану. Я подключил его в segue, чтобы «показать» следующий контроллер представления. Мне нужно его проверить поле ввода и продолжать, только если поле не пустое, и, конечно, передать имя следующему контроллеру представления, также мне не удается показать и скрыть мою клавиатуру (остается включенным при переходе на второй контроллер просмотра). Кто-нибудь знает, как сделать кнопку, проверить поле и только затем перейти к следующему контроллеру представления? вот мой код (в основном автогенерируемая):Ошибка передачи данных в таблицуController

import UIKit 

    class LobbyController: UIViewController { 

     @IBOutlet weak var playerNameField: UITextField! 


     override func viewDidLoad() { 
      super.viewDidLoad() 

      playerNameField.becomeFirstResponder() 
     } 

     override func didReceiveMemoryWarning() { 
      super.didReceiveMemoryWarning() 
      // Dispose of any resources that can be recreated. 
     } 

     @IBAction func nameLabel(sender: UITextField) { 
      playerNameField.becomeFirstResponder() 
     } 

     @IBAction func startGameButton(sender: AnyObject) { 
      self.playerNameField.resignFirstResponder() 

      } 
    } 

спасибо!

ответ

1

Если вы хотите выполнить некоторую проверку ввода перед переходом, вы не должны подключать segue непосредственно к кнопке, а отступать от кода.

Сначала вы должны нажать кнопку мыши и удалить действие segue.

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

enter image description here

Затем нажмите на Segue в раскадровке и открыть его атрибуты инспектора и добавить идентификатор SEGUE.

enter image description here

Теперь вы можете выполнить этот переход в коде.

Так что для IBAction вашего нажатия кнопки вы можете сказать что-то вроде:

@IBAction func startGameButton(sender: AnyObject) { 
     if self.playerNameField.text?.characters.count != 0{ 
      self.playerNameField.resignFirstResponder() 
      self.performSegueWithIdentifier("MySegueId", sender: self.playerNameField.text!) 
     } 

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