我在子视图控制器中有一个uibutton,它的动作需要在父视图控制器中被调用,这是我的代码。
class ChildViewController: UIViewController {
@IBOutlet weak var btn: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
btn.addTarget(nil, action: Selector(("onBtnTap")), for: .touchUpInside)
}
}
class ParrentViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
func onBtnTap(sender: Any) {
print("Hey, I am Parent VC ")
}
}
当我点击按钮时,onBtnTap方法没有被调用,也没有发生崩溃。
你可以在Child中创建一个Parent的实例来实现这个功能,下面是方法。
class ChildViewController: UIViewController {
@IBOutlet weak var btn: UIButton!
let parentVC = ParentViewController()
override func viewDidLoad() {
super.viewDidLoad()
btn.addTarget(parentVC, action: #selector(parentVC.onBtnTap(sender:)), for: .touchUpInside)
}
}
class ParentViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
@objc func onBtnTap(sender: Any) {
print("Hey, I am Parent VC ")
}
}