隐藏/显示 PageViewController 中特定视图控制器的状态栏 [关闭]
Posted
技术标签:
【中文标题】隐藏/显示 PageViewController 中特定视图控制器的状态栏 [关闭]【英文标题】:Hide/show status bar for specific view controllers in PageViewController [closed] 【发布时间】:2014-10-28 23:38:52 【问题描述】:我有一个包含 3 个视图控制器的 UIPageViewController
。我想隐藏前 2 个视图控制器的状态栏并显示最后一个视图控制器的状态栏。最好的方法是什么?
【问题讨论】:
【参考方案1】:在你的 PageViewController 的委托中,添加这个。
- (BOOL)prefersStatusBarHidden
PageContentViewController *controller = self.pageViewController.viewControllers[0];
if (controller.pageIndex == 2)
return NO;
else
return YES;
- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
if (completed)
PageContentViewController *controller = self.pageViewController.viewControllers[0];
NSUInteger pageIndex = controller.pageIndex;
// only update status bar when transition is between page 2 and page 3
if (pageIndex == 1 || pageIndex == 2)
[self setNeedsStatusBarAppearanceUpdate];
【讨论】:
由于某种原因,当我尝试在prefersStatusBarHidden
中访问 self.pageViewController.viewControllers
时,它返回 nil。知道为什么吗?
首先你可以对self.pageViewController做nil检查,如果是nil,那么你必须找到你的pageViewController在哪里,然后把方法放在创建你pageViewController的控制器中。以上是关于隐藏/显示 PageViewController 中特定视图控制器的状态栏 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
IphoneX 安全区在使用 PageViewController 时导致隐藏内容
IOS:通过PageViewController显示WebView