我正在创建一个简单的登录表单,其中单击“登录”按钮时,textfield中的用户名应显示在另一个UIView中。
如何从UIViewA的文本字段传递数据并将文本字段中的值显示到UIViewB中的标签?
只有一个ViewController,其中UIViews将互换,因此不需要segue。
这是登录UIView的按钮功能:
class UIView1: UIView {
@IBAction func buttontohome(_ sender: Any) {
if (usernamebox.text == username || usernamebox.text == email) && passwordbox.text == password
{
// load UIView2 and send username string to UIView2 label
}
else {
loadViewFromNib()
loginfaillabel.text = "Login failed"
}
}
}
这是第二个UIView,其中登录成功后应出现用户名字符串:
class UIView2: UIView {
@IBOutlet var labelforpassedvalue: UILabel!
var usernamelabel = String()
func viewDidLoad() {
super.viewDidLoad()
labelforpassedvalue.text = "Welcome Bob, " + usernamelabel
}
}
请帮忙......
答案 0 :(得分:0)
我同意luk2302;这是有缺陷的设计,你可能想重新考虑一下你的方式。
那就是说,如果你有以这种方式去做,一种方法就是在你的主ViewController中声明一个可选的,如下所示:
var usernameLabelText: String?
然后在调用buttontohome
操作时更新其值:
usernameLabelText = usernamebox.text
我会留给你弄清楚如何用新的替换旧的UIView。