【问题标题】:Sending a text entry through segue通过 segue 发送文本条目
【发布时间】:2015-11-17 01:17:49
【问题描述】:

我正在通过 segue 发送一个 textfield 条目以出现在另一个 ViewController 上的 textfield 中。我遇到的问题是textfield 条目的segue 和发送工作正常。我知道 segue 标识符是正确的,就好像我使用 self.performSegueWithIdentifier("WelcomeSignUp", sender: nil ) 它工作正常一样。谁能指出我犯的错误或更好的使用方法?

这是来自第一个ViewController的代码

@IBOutlet var Email: UITextField!

@IBAction func Signup(sender: AnyObject) {

    let email = self.Email.text

    if email == "" {

        displayAlert("Error", message: "Please Enter Your Email Address")

    }   else {

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

            if segue.identifier == "WelcomeSignUp" {

                let destination = segue.destinationViewController as! SignUpViewController

                destination.mail = Email.text!

            }

        }
        }
}

接收代码ViewController

@IBOutlet var EmailSignUp: UITextField!

var mail = ""

override func viewDidLoad() {
    super.viewDidLoad()

    EmailSignUp.text = mail

}

来自第一个 ViewController 的更新代码

@IBAction func Signup(sender: AnyObject) {

    let email = self.Email.text

    if email == "" {

        displayAlert("Error", message: "Please Enter Your Email Address")

    }   

}

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

    if segue.identifier == "WelcomeSignUp" {

        let destination = segue.destinationViewController as! SignUpViewController

        destination.mail = Email.text!

    }

}

【问题讨论】:

    标签: swift segue textfield


    【解决方案1】:

    prepareForSegue(_:sender:) 必须是实例方法,但您已将其声明为 Signup(_:) 内的嵌套(且未使用)函数。

    您需要将其移出,以便在与Signup(_:) 相同的范围内声明。

    【讨论】:

    • 那是不成功的。我还添加了override func 而不是func,因为大多数示例都显示它正在被使用,它错误地指出它不会覆盖任何方法。
    • “不成功”信息不足。编辑您的问题以包含您的新代码。
    猜你喜欢
    • 2023-03-30
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    • 2017-11-11
    • 2012-02-19
    • 1970-01-01
    相关资源
    最近更新 更多