按钮操作不适用于子视图

Button action is not working on subView

在我的一个 iOS 项目中,我以编程方式在我的 Feed ViewController(主视图)上添加了过滤器 ViewController(子视图)的子视图。

过滤器 ViewController 到 select 价格、城市等的按钮很少

插座已连接,但当我尝试拍摄按钮动作时,它不起作用。 我还启用了 isUserInteractionEnabled,但它仍然无法正常工作。

累积对我来说,这是与视图上的子视图相关的东西!但要解决这个问题。你能建议我如何拍摄它发生的子视图的按钮动作吗?

class FilterViewController: BaseUIViewController{

   override func viewWillAppear(_ animated: Bool) {
     super.viewWillAppear(animated)

     cityButton.isUserInteractionEnabled = true
   }

   @IBAction func selectCity(_ sender: Any)
   {
    print("selectCity action")
   }
}

使用下面的代码

将您的过滤器ViewController作为子视图添加到您的ViewController
filterViewController.willMove(toParentViewController: self)
self.view.addSubview(filterViewController.view)
self.addChildViewController(filterViewController)
filterViewController.didMove(toParentViewController: self)

@SandeepBhandari 解决方案对类似问题仍然有效。

这些 UIViewController 扩展将很有用。

extension UIViewController {

func add(asChildViewController viewController: UIViewController, containerView: UIView) {
    addChild(viewController)
    containerView.addSubview(viewController.view)
    viewController.view.frame = containerView.bounds
    viewController.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    viewController.didMove(toParent: self)
}

func remove(asChildViewController viewController: UIViewController) {
    viewController.willMove(toParent: nil)
    viewController.view.removeFromSuperview()
    viewController.removeFromParent()
} 

}