按钮操作不适用于子视图
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()
}
}
在我的一个 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作为子视图添加到您的ViewControllerfilterViewController.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()
}
}