[英]Calling textfield from another class swift
叫課:
class LoginViewController: UIViewController {
let chipField: UITextField = {
........
return textField1
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(chipField)
}
}
要調用的表:
class MainTableViewController: UITableViewController {
....
}
LoginViewController
MainTableViewController
調用chipfield
在這種情況下,您實際上應該使用委托,例如
在此處閱讀有關代表的更多信息
protocol MainTableViewControllerDelegate {
func getChipFieldValue()
}
class MainTableViewController: UITableViewController {
var delegate: MainTableViewControllerDelegate?
// to get chipFieldValue self.delegate?.getChipFieldValue)
}
在LoginViewController中定義委托中的函數
class LoginViewController: UIViewController,MainTableViewControllerDelegate {
func getChipFieldValue() ->String {
return chipField.text
}
// later in the code when you present MainTableViewController view pass delegate to self to MainTableViewController object
// something like the MainTableViewControllerObject.delegate = self
}
根據您的情況,您需要的只是MainTableViewController中的一個屬性
class MainTableViewController: UITableViewController {
var chipFieldCopy:UITextField?
...
}
但是我建議您重新考慮是否需要整個UITextField,在大多數情況下,您只需要它的文本即可,
class MainTableViewController: UITableViewController {
var chipInfoString:String?
...
}
足夠。
在您的handleLogin()方法中,可以將其傳遞到MainTableViewController中,如下所示:
//let navController = UINavigationController(rootViewController: MainTableViewController()) //Replace this line
let mainTableVC = MainTableViewController()
mainTableVC.chipFieldCopy = chipField
let navController = UINavigationController(rootViewController: mainTableVC)
或像我建議的
mainTableVC.chipInfoString = chipField.text
你可以在MainTableViewController中訪問它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.