private func setPageVIEwController() { let blahpageController = self.storyboard!.instantiateVIEwControllerWithIDentifIEr("BlahpageController") as! BlahpageVIEwController blahpageController.dataSource = self blahpageController.blahs = blahs if blahs.count > 0 { let firstController = getItemController(0)! let startingVIEwControllers: NSArray = [firstController] blahpageController.setVIEwControllers(startingVIEwControllers as [AnyObject],direction: .Forward,animated: false,completion: nil) } // Setting page vIEw controller to front of app pageVIEwController = blahpageController addChildVIEwController(pageVIEwController!) self.vIEw.addSubvIEw(pageVIEwController!.vIEw) pageVIEwController!.dIDMovetoParentVIEwController(self) // Now lets bring that container to the front. self.vIEw.bringSubvIEwToFront(self.headerbar) // BUT IT DOESN'T WORK!!!!}
我必须想象容器会走到页面的最前端.但是,当我运行应用程序时,容器内的按钮不可单击.
下面的故事板.
调试视图截图.
这有什么问题?有没有更好的方法来处理这个问题.当用户翻阅页面但容器与BlahItemVIEwController重叠时,我不希望这些按钮移动?我怎样才能解决这个问题?
解决方法 在你的setPageVIEwController()函数中,你正在使用addSubvIEw()将UIPageVIEwController的视图添加到VIEwController的视图中.这将使视图位于所有其他视图之上.基本上你有两个选择来避免这种情况.将其作为第一个视图插入使用
self.vIEw.insertSubvIEw(pageVIEwController!.vIEw,atIndex: 0)
或使用以下特定视图
self.vIEw.insertSubvIEw(pageVIEwController!.vIEw,belowSubvIEw: self.headerbar)
这应该够了吧.
更新
还要确保为容器视图启用了用户交互. Interface Builder中有一个设置,但您也可以在代码中执行此 *** 作:
self.headerbar.userInteractionEnabled = true总结
以上是内存溢出为你收集整理的ios – 将容器带到视图前方全部内容,希望文章能够帮你解决ios – 将容器带到视图前方所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)