被称为课程:
class LoginViewController: UIViewController {
let chipField: UITextField = {
........
return textField1
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(chipField)
}
}
要调用的表:
class MainTableViewController: UITableViewController {
....
}
MainTableViewController
在chipfield
中呼叫LoginViewController
答案 0 :(得分:3)
在这种情况下,您确实应该使用委托,例如
详细了解代表Here
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
}
答案 1 :(得分:0)
根据您的情况,您只需要MainTableViewController中的一个属性
smart update
smart install docker-ce
但是我建议您重新考虑是否需要整个UITextField,在大多数情况下,您只需要它的文本即可,
class MainTableViewController: UITableViewController {
var chipFieldCopy:UITextField?
...
}
足够了。
在您的handleLogin()方法中,您可以像下面这样将其传递到MainTableViewController中:
class MainTableViewController: UITableViewController {
var chipInfoString:String?
...
}
或者像我建议的
//let navController = UINavigationController(rootViewController: MainTableViewController()) //Replace this line
let mainTableVC = MainTableViewController()
mainTableVC.chipFieldCopy = chipField
let navController = UINavigationController(rootViewController: mainTableVC)
,您可以在MainTableViewController中访问它