将数据传递给tableController时出错

时间:2016-06-04 14:36:54

标签: uiviewcontroller swift2 xcode7

我是swift的新手,我正在尝试制作一个带有文本字段和按钮的大厅屏幕,以便移动到下一个屏幕。我用segue连接它以“显示”下一个视图控制器。 我需要它来检查我的输入字段,只有当字段不为空时才继续,当然要将名称传递给下一个视图控制器,我也无法显示和隐藏我的键盘(在切换到第二个视图时保持打开状态)控制器)。有谁知道如何使按钮检查字段,然后才移动到下一个视图控制器? 这是我的代码(主要是自动生成):

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 个答案:

答案 0 :(得分:1)

如果你想在segueing之前做一些输入验证,你不应该将segue直接连接到按钮,而是从代码中删除。

首先,您应该控制单击按钮并删除创建的segue操作。

现在,您应该从视图控制器创建segue,方法是从文档大纲中的黄色视图控制器图标拖动。

enter image description here

然后,单击故事板中的segue并打开其属性检查器并添加segue标识符。

enter image description here

现在您可以在代码中执行此segue。

因此,对于您按下按钮的IBAction,您可以说:

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

}