UIResponder链在UIButton动作中不起作用。

问题描述 投票:0回答:1

我在子视图控制器中有一个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方法没有被调用,也没有发生崩溃。

ios swift xcode uibutton uiresponder
1个回答
0
投票

你可以在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 ")
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.