У меня есть два контроллера.Одним из них является просто рамка Popover.Это небольшой прямоугольник с прозрачным фоном.
У меня есть Tableview во втором контроллере, и я хочу изменить TextField в моем первом контроллере, выбрав TableView Raw во втором контроллере.
Возможно ли это?Это метод из моего первого контроллера, который создаст второй контроллер / CategoryViewController:
@IBAction func showCategoryPopup(_ sender: Any) {
let popOverVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "categoryVC") as! CategoryViewController
self.addChild(popOverVC)
popOverVC.view.frame = self.view.frame
self.view.addSubview(popOverVC.view)
popOverVC.didMove(toParent: self)
}
И это метод, который создаст Popover в моем втором контроллере:
func showAnimate() {
self.view.transform = CGAffineTransform.init(scaleX: 1.3,y:1.3)
self.view.alpha = 0.0
UIView.animate(withDuration: 0.25) {
self.view.alpha = 1.0
self.view.transform = CGAffineTransform.init(scaleX: 1.0,y:1.0)
}
}
func removeAnimate() {
UIView.animate(withDuration: 0.25, animations: {
self.view.transform = CGAffineTransform.init(scaleX: 1.3,y:1.3)
self.view.alpha = 0.0
}) { (finished: Bool) in
if(finished) {
self.view.removeFromSuperview()
}
}
}
КакМогу ли я позвонить своему первому контроллеру со второго контроллера?Я пробовал так:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print(indexPath.row)
// let myVC = storyboard?.instantiateViewController(withIdentifier: "changeBalanceCtrl") as! ChangeBalanceViewController
let firstVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "changeBalanceCtrl") as! ChangeBalanceViewController
firstVC.changeBalanceTextField.text! = "TEST"
}
Я думаю, что проблема в том, что первый контроллер changeBalanceTextField.text равен нулю.Я проверил параметр self и получил два разных объекта.Поэтому я думаю, что первый контроллер, который я создаю со своим вторым контроллером, отличается.