我是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()
}
}
谢谢!
答案 0 :(得分:1)
如果你想在segueing之前做一些输入验证,你不应该将segue直接连接到按钮,而是从代码中删除。
首先,您应该控制单击按钮并删除创建的segue操作。
现在,您应该从视图控制器创建segue,方法是从文档大纲中的黄色视图控制器图标拖动。
然后,单击故事板中的segue并打开其属性检查器并添加segue标识符。
现在您可以在代码中执行此segue。
因此,对于您按下按钮的IBAction,您可以说:
@IBAction func startGameButton(sender: AnyObject) {
if self.playerNameField.text?.characters.count != 0{
self.playerNameField.resignFirstResponder()
self.performSegueWithIdentifier("MySegueId", sender: self.playerNameField.text!)
}
}