子视图在UIViewController中不可点击

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

我正在尝试在UIViewController中嵌入自定义视图。但是,当显示时,由于它不在UIView框架中,因此无法单击。

storyboard screenshot

viewDidLoad:

@IBOutlet var theVC_InVC_Test: UIView!

@IBOutlet var TableView: UITableView!

override func viewDidLoad() {
    TableView.delegate = self
    TableView.dataSource = self

    func embed(_ viewController:UIViewController, inView view:UIView){
        viewController.willMove(toParent: self)
        viewController.view.frame = view.bounds
        view.addSubview(viewController.view)
        self.addChild(viewController)
        viewController.didMove(toParent: self)
    }
    embed(sidemenutest1(), inView: theVC_InVC_Test)

}

sidemenutest1 UIViewController:

func popItOver(){
    let PopOverVC = UIStoryboard(name:"Main",bundle: nil).instantiateViewController(withIdentifier: "CoinsPopUp") as! CoinsPopUpViewController
    self.addChild(PopOverVC)
    PopOverVC.view.frame = UIScreen.main.bounds
    self.view.addSubview(PopOverVC.view)
    PopOverVC.didMove(toParent: self)
}

@IBAction func storeAction(_ sender: Any) {
    popItOver()
}

simulator output

它显示的很好,但是它不是可单击的。当我尝试单击子视图按钮时,将单击TableView,而不是该子视图。

ios swift uiview uiviewcontroller custom-view
1个回答
0
投票

您不应该将弹出菜单添加为容器视图控制器。它应从控制器显示为模态视图控制器,并将其背景视图颜色设置为半透明灰色。

© www.soinside.com 2019 - 2024. All rights reserved.