将容器视图划分为swift中的2个控制器

时间:2016-10-31 01:03:30

标签: ios swift uiviewcontroller containers master-detail

我需要在一侧显示自定义tableview,在ipad中显示其他详细信息,例如splitview controller。因此,在选择单元格上的按钮后,细节会显示。

我的问题来自显示细节控制器。我通过委托方法

将tableview中按钮的数据发送到容器控制器
let containerController = self.storyboard?.instantiateViewController(withIdentifier: "ContainerController") as! ContainerViewController
containerController.reactionViewControllerResponse(selectedMechanism: selectedMechanism)
self.navigationController?.pushViewController(containerController, animated: true)

在容器中,我通过

创建了详细控制器
override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(true)

    if (selectedMechanism != "" && self.mechanismViewController != nil){
        self.mechanismViewController = self.storyboard?.instantiateViewController(withIdentifier: "MechanismController") as! MechanismViewController?
        self.mechanismViewController?.selectedMechanism = selectedMechanism

        self.addChildViewController(mechanismViewController!)
        mechanismViewController?.view.frame = CGRect(x: self.containerView.frame.size.width/2, y: 0, width: self.containerView.frame.size.width/2, height: self.containerView.frame.size.height)
        self.containerView.addSubview((mechanismViewController?.view)!)
        mechanismViewController?.didMove(toParentViewController: self)
    }
}

但由于tableview控制器中的这一行

    self.navigationController?.pushViewController(containerController, animated: true)

细节控制器未显示在同一容器控制器中,而是显示在另一个容器控制器中。我尝试了几件事,但是没有任何东西出现或者在不同的容器中。

请帮帮我!!!

PS:我不使用splitview控制器,因为我不需要它作为初始视图控制器,我已经尝试过并且在整个屏幕上仅显示主控器时出现问题,自定义tableview单元... 。

1 个答案:

答案 0 :(得分:0)

问题解决了,代表被严重实例化了。 谢谢我:)。