使用带有页面视图控制器的容器
Posted
技术标签:
【中文标题】使用带有页面视图控制器的容器【英文标题】:using container with page view controller 【发布时间】:2016-04-26 21:39:40 【问题描述】:对于我当前的应用程序,我正在设置一个 UIPageViewController 以在 3 个不同的视图之间进行交换。我不打算添加任何导航栏,所以我添加了一个关闭按钮来将用户导航回主屏幕。但是,我希望关闭按钮的位置固定在右上角。所以我在 ViewController 中使用了一个容器来调用另一个带有图像和文本的视图控制器,如下所示:
在这里,页面视图控制器指向带有嵌入式 segue 的容器视图控制器,以查找页面内容控制器。
目前在我拥有的页面视图控制器的相应类中; // MARK:- 其他方法
func getViewControllerAtIndex(index: NSInteger) -> LookUpPageContentViewController
// Create a new view controller and pass suitable data.
let pageContentViewController = self.storyboard?.instantiateViewControllerWithIdentifier("containerLookUp") as! LookUpPageContentViewController
pageContentViewController.strTitle = "\(arrPageTitle[index])"
pageContentViewController.strPhotoName = "\(arrPagePhoto[index])"
pageContentViewController.strMainTitle = "\(arrMainTitle[index])"
pageContentViewController.pageIndex = index
pageContentViewController.view.backgroundColor = UIColor.dondeBeigeColor()
return pageContentViewController
然而,此方法指向查找页面内容视图控制器。如何更改此方法以调用容器视图控制器,然后再调用查找页面内容控制器。
【问题讨论】:
【参考方案1】:通过阅读您的问题,我假设结构
-> PageViewController
-> ContainerView
-> LookupView controller
所以在点击时,你应该先加载 containerView。如下所示
ContainerViewController*containerView =[self.storyboard instantiateViewControllerWithIdentifier: CONTAINER_VIEWCONTROLLER_ID];
[self.navigationController pushViewController:switchView animated:YES];
在 ContainerViewController viewDidLoad 方法上,这样做
LookUpPageContentViewController*lookUpView = // Get the Appropirate LookupView
[self.pageViewController setViewControllers:@[lookUpView] direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
这将为您提供所需的功能。希望这对您有所帮助。
【讨论】:
以上是关于使用带有页面视图控制器的容器的主要内容,如果未能解决你的问题,请参考以下文章
iOS如何获取对带有segue的storyboard容器中嵌入的视图控制器的引用?