0
我有一个UIPageViewController
包含3个视图控制器。我想隐藏前两个视图控制器的状态栏并显示最后一个视图控制器的状态栏。什么是最好的方法来做到这一点?PageViewController中特定视图控制器的隐藏/显示状态栏
我有一个UIPageViewController
包含3个视图控制器。我想隐藏前两个视图控制器的状态栏并显示最后一个视图控制器的状态栏。什么是最好的方法来做到这一点?PageViewController中特定视图控制器的隐藏/显示状态栏
在你的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。任何想法为什么? – thisiscrazy4 2014-10-29 01:39:04
首先,您可以对self.pageViewController进行无检查,如果它为零,那么您必须找到您的pageViewController在哪里,并将该方法放在创建您的pageViewController的控制器中。 – gabbler 2014-10-29 01:47:55
明白了,谢谢! – thisiscrazy4 2014-10-29 01:59:45