保存和加载文本在UITEXTFIELD上



我在问题上挣扎了几个小时。基本上,我有一个简单的Swift应用程序。它是这样的。在我的第一个视图控制器中,我有3个文本字段,我想用信息和一个"下一个"按钮填充它们。

按"下一个"按钮将把我发送到一个新的UiviewController,在那里我将拥有一个" Back"按钮。按下后面按钮后,我将带有3个文本字段的第一页。

我想要的是:如果我通过信息完成文本字段,请按下一步然后返回,我希望文本字段充满该信息。

我设法用按钮在视图之间移动,但我无法保存信息。你能给我一点帮助吗?

@IBOutlet weak var txtb1: UITextField!
@IBOutlet weak var txtb2: UITextField!
@IBOutlet weak var txtb3: UITextField!

@IBAction func next(sender: AnyObject) {
    text1 = self.txtb1.text!
    text2 = self.txtb2.text!
    text3 = self.txtb3.text!  }
override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        if (!text1)
        {
            txtb1.text = text1
        }
    }

如果要将变量传递给不同的视图,则必须在将 preparforsegue 函数中使用,然后才能将变量转移到该视图控制器中。

这允许视图控制器访问变量。

Override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!)
{
    if segue.identifier == "segue_name"
    {
        let theDestination = segue.destinationViewController as! newViewController
        theDestination.variable = "testing"
        theDestination.variable2 = "testing2"
    }
}

然后在第二视图控制器内部,您必须声明变量和变量2,如下所示:

var variable:String!
var variable2:String!

然后,这些将能够在 viewDidload 方法的第二视图控制器中使用。

好。我设法解决了一些问题,该按钮没有相应地链接,因此该功能没有执行。这是代码:

var text1 = ""
@IBOutlet weak var txtb1: UITextField!
@IBAction func next(sender: AnyObject) {
    text1 = self.txtb1.text! // text1 = "I am taking value"
}
// when i press the back button
override func viewDidLoad() {
        super.viewDidLoad()
        if (!numarInmatriculare.isEmpty)
        {
            txtb1.text = text1    //here text1 = Null. the value is not saved
        }
    }

我希望将值保存并在文本字段中显示。

我还尝试使用静态varibiles,但我是错误的。

static var numar:String = ""
numar = text1
//static member 'numar'cannot be used on instance of type 'viewcontroller' 

您无需为这种情况做任何事情,一旦提交了文本字段,您单击下一个按钮,您在下面写了一些代码

  text1 = self.txtb1.text!
  text2 = self.txtb2.text!
  text3 = self.txtb3.text!

请首先删除代码,一旦填充了提交的文本,它会自动保留,单击下一个按钮后,然后自动返回后,它将保留,当您当前视图弹出时,只有数据才能备份。

最新更新