Search code examples
iosswiftuipageviewcontrolleruicontainerview

UIContainerView element under the view where he is contained


I've a little problem with a UIContainerView. Each element from my containerView are under my ViewController generated by my UIPageController

This image will be more explicit :

enter image description here

So here, my blue button will be under the UIImageView (viewController at the bot) and i need it over it. I don't understand why, if someone have an I idea.

Result :

enter image description here

How i create my PageVieWController :

 fileprivate func createPageViewController() {
    let pageController = self.storyboard!.instantiateViewController(withIdentifier: "PageController") as! UIPageViewController
    pageController.dataSource = self

    if contentImages.count > 0 {
        let firstController = getItemController(0)!
        let startingViewControllers = [firstController]
        pageController.setViewControllers(startingViewControllers, direction: UIPageViewControllerNavigationDirection.forward, animated: false, completion: nil)
    }

    pageViewController = pageController
    addChildViewController(pageViewController!)
    self.view.addSubview(pageViewController!.view)
    pageViewController!.didMove(toParentViewController: self)
}

And how i instantiate my pageItem :

fileprivate func getItemController(_ itemIndex: Int) -> ABTutorialPageItemViewController? {
    if itemIndex < contentImages.count {
        let pageItemController = self.storyboard!.instantiateViewController(withIdentifier: "ItemController") as! ABTutorialPageItemViewController
        pageItemController.itemIndex = itemIndex
        pageItemController.imageName = contentImages[itemIndex]
        return pageItemController
    }
    return nil
}

If you want to manipulate, show directly in action you can use this project : https://github.com/YanisSOTO/Simple-UIPageViewController-Example


Solution

  • Solved by replacing :

    self.view.addSubview(pageViewController!.view)
    

    to :

     self.containerView.addSubview(pageViewController!.view)