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