How To Properly Add Child View Controller in iOS 8 With Swift

前端 未结 3 938
自闭症患者
自闭症患者 2020-12-09 13:43

I\'ve been going through the documentation and still seem to be on a sticking point.

I have a view controller object C_SelectPhoto. This has a container view. Insid

3条回答
  •  情话喂你
    2020-12-09 14:23

    use following Extension for adding childViewController On View

    extension UIViewController {   
    func configureChildViewController(childController: UIViewController, onView: UIView?) {
        var holderView = self.view
        if let onView = onView {
            holderView = onView
        }
        addChildViewController(childController)
        holderView.addSubview(childController.view)
        constrainViewEqual(holderView, view: childController.view)
        childController.didMoveToParentViewController(self)
        childController.willMoveToParentViewController(self)
    }
    
    
    func constrainViewEqual(holderView: UIView, view: UIView) {
        view.translatesAutoresizingMaskIntoConstraints = false
        //pin 100 points from the top of the super
        let pinTop = NSLayoutConstraint(item: view, attribute: .Top, relatedBy: .Equal,
            toItem: holderView, attribute: .Top, multiplier: 1.0, constant: 0)
        let pinBottom = NSLayoutConstraint(item: view, attribute: .Bottom, relatedBy: .Equal,
            toItem: holderView, attribute: .Bottom, multiplier: 1.0, constant: 0)
        let pinLeft = NSLayoutConstraint(item: view, attribute: .Left, relatedBy: .Equal,
            toItem: holderView, attribute: .Left, multiplier: 1.0, constant: 0)
        let pinRight = NSLayoutConstraint(item: view, attribute: .Right, relatedBy: .Equal,
            toItem: holderView, attribute: .Right, multiplier: 1.0, constant: 0)
    
        holderView.addConstraints([pinTop, pinBottom, pinLeft, pinRight])
    }}
    

提交回复
热议问题