我在一个问题上挣扎了几个小时。基本上,我有一个简单的Swift应用程序。它是这样的。在我的第一个视图控制器中,我有3个文本字段,我想用信息和“下一步”按钮填充它们。
按下“下一步”按钮会将我发送到一个新的UIViewController,我将在其中有一个“后退”按钮。按下后退按钮后,我将发送回第1页,其中包含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
}
}
答案 0 :(得分:0)
如果您想将变量传递给不同的视图,则必须先使用 prepareForSegue 函数,然后才能进入该视图控制器。
这允许视图控制器访问变量。
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 方法内的第二个视图控制器中使用。
答案 1 :(得分:0)
确定。我设法解决了一些问题,该按钮没有相应的链接,所以功能没有执行。这是代码:
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'
答案 2 :(得分:0)
你不需要为这种情况做任何事情,一旦文字字段提交然后你点击下一个按钮,你在我下面写了一些代码
text1 = self.txtb1.text!
text2 = self.txtb2.text!
text3 = self.txtb3.text!
请先删除代码,一旦填写了文本数据,它会自动保留,单击下一步按钮后自动返回它会保留,当您弹出当前视图时,只会释放您的数据。