UIResponder 链在 UIButton 操作中不起作用
UIResponder chain not working in UIButton action
我在子视图控制器中有一个 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 ")
}
}
我在子视图控制器中有一个 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 ")
}
}