Ios 用户完成编辑uitextfield后调用prepareforsegue

Ios 用户完成编辑uitextfield后调用prepareforsegue,ios,swift,uitextfield,segue,viewcontroller,Ios,Swift,Uitextfield,Segue,Viewcontroller,如何将文本值从UITextField传递到另一个视图控制器。当前,当我重写func prepareforsgue()时,它在用户完成编辑文本字段之前被调用,因此传递的值总是空的。您有两种方法可以做到这一点: 直接访问文本字段的文本值,而不是模型,这听起来像是在完成编辑后更新的 您可以通过实现内部函数textField(textField:UITextField,shouldChangeCharactersRange:NSRange,replacementString:string)->Bool并

如何将文本值从UITextField传递到另一个视图控制器。当前,当我重写func prepareforsgue()时,它在用户完成编辑文本字段之前被调用,因此传递的值总是空的。

您有两种方法可以做到这一点:

  • 直接访问
    文本字段的
    文本
    值,而不是模型,这听起来像是在
    完成编辑后更新的
  • 您可以通过实现
    内部函数textField(textField:UITextField,shouldChangeCharactersRange:NSRange,replacementString:string)->Bool
    并使用
    let newString=(textField.text!作为NSString)。StringByReplacingCharactersRange(范围,带字符串:string)

  • 但是,
    override func prepareforsgue()
    在用户完成编辑文本字段之前被调用。我是否可以这样做,以便在用户编辑文本字段之后调用此函数?我是否将此函数放入
    didFinishEditing
    ?请阅读我的两个答案,这两个答案都不会出现问题。您可以改为实现
    internal func shouldperformsguewithidentifier(identifier:String,sender:AnyObject?->Bool
    并返回
    false
    ,然后在
    结束时完成编辑
    调用
    performsgue
    ,但我认为这是一个非常糟糕的主意。