从导航堆栈返回后如何清除文本框?

时间:2015-02-05 02:59:33

标签: ios xcode swift

例如,我的主页登录屏幕有两个用于用户名和密码的文本框。登录后,转到我的第二个视图控制器,我有一个注销按钮。按下注销按钮将我带回根视图控制器(登录屏幕)。但是,文本字段仍然由用户名条目占用。有没有办法自动清除?

5 个答案:

答案 0 :(得分:0)

听起来您的登录视图控制器正在呈现您的主视图控制器。我不相信有一种自动方式来擦除文本框,但您可以在验证完凭据之后,以及在显示主视图之前设置它们。

我使用的方法会自动执行,因为登录视图会被取消,如果有人注销并重新登录,则会创建一个新视图。为此,只需将当前的第二个视图切换为根视图,以模态方式呈现登录视图。登录完成后,您将关闭登录视图并退回到主视图。然后注销,将再次触发登录视图模式,这将是空白的。

答案 1 :(得分:0)

在viewWillAppear函数中,为两个文本字段控件插入: yourTextField.text =“”。您也可以将它放在viewDidLoad中,但根据您设置导航的方式,这可能会也可能不会一致。如果你正在对第二个控制器进行直接切换并返回它应该没问题。这也适用于多行textView类型控件。

答案 2 :(得分:0)

override func viewWillAppear(_ animated: Bool) {
    mobileNoText.text = ""
    passwordText.text = ""
}

答案 3 :(得分:0)

在“登录”按钮IBAction中,您必须添加此代码。

val dataset =  spark.read.parquet("/usr/local/spark/dataset/data/user")
val features = new VectorAssembler()
    .setInputCols(Array("id", "features" ))
    .setOutputCol("features")
val pca = new PCA()
     .setInputCol("features")
     .setK(50)
     .fit(dataset)
     .setOutputCol("pcaFeatures")
val result = pca.transform(dataset).select("pcaFeatures")
pca.save("/usr/local/spark/dataset/out")

注销时,这将清除用户名和密码文本字段。因此您将看到一个清晰的登录表格。

答案 4 :(得分:-1)

在viewWillAppear内部,您可以检测是否由于被按下或由于另一个视图被弹出而出现。这假设您的登录是链中的第一个控制器。

if (!self.isMovingToParentViewController){
   // Clear fields
}
else{
   // Showing for first time
}

然后只需添加代码即可将登录字段清零。