【发布时间】:2015-04-06 06:09:06
【问题描述】:
我在尝试取消隐藏应用中的导航栏时遇到了问题。我在 UIViewController 中创建了一个 UIPageViewController,如下所示:
//Hide the bar
self.navigationController.navigationBar.hidden=YES;
// Create page view controller
self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
self.pageViewController.dataSource = self;
UIPageControl *pageControl = [UIPageControl appearance];
pageControl.pageIndicatorTintColor = [UIColor lightGrayColor];
pageControl.currentPageIndicatorTintColor = [UIColor colorWithRed:229/255.0 green:145/255.0 blue:217/255.0 alpha:1];
pageControl.backgroundColor = [UIColor whiteColor];
//Call our helper method
StickerContentViewController *startingViewController = [self viewControllerAtIndex:0];
//Need to pass the first one, don't put them all in here
NSArray *viewControllers = @[startingViewController];
[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
self.pageViewController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
//setup
[self addChildViewController:_pageViewController];
[self.view addSubview:_pageViewController.view];
[self.pageViewController didMoveToParentViewController:self];
当我使用[self.navigationController popViewControllerAnimated:YES]; 弹出 UIViewController(包含 UIPageViewController 的那个)时,我无法让导航栏取消隐藏上一个屏幕。我尝试将self.navigationController.navigationBarHidden=NO; 放在viewWillDisappear、viewDidDissappear 中。我也尝试将它放在内容视图控制器中,但仍然没有运气。有人可以指点我在这里可能做错了什么吗?
【问题讨论】:
-
尝试在上一屏ViewWIillAppear方法中设置导航栏隐藏=NO。
-
试过了。没运气。我通常的取消隐藏和隐藏模式是在 viewDidLoad 方法中隐藏栏,然后在 viewWillDisappear 中取消隐藏。 UIPageViewController 似乎让它感到困惑..
-
viewWillAppear 每次加载 viewcontroller 时都会被调用,因此请尝试在此方法中启用
-
我已经做到了。尝试将代码放在那里。虽然不起作用。它确实调用了 viewWillAppear 中的代码(我用 NSLog 进行了检查),但由于某种原因它不会取消隐藏导航栏。
-
可能是因为子/父视图控制器设置?
标签: ios uinavigationbar uipageviewcontroller