首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >工具栏隐藏/取消隐藏ios 6.0上uisplitiview主视图中的问题,纵向模式

工具栏隐藏/取消隐藏ios 6.0上uisplitiview主视图中的问题,纵向模式
EN

Stack Overflow用户
提问于 2012-09-22 22:26:46
回答 1查看 1.4K关注 0票数 0

一个奇怪的问题只出现在iOS 6.0上。在基于UISplitViewController的应用的iPad纵向模式中,主视图是基于导航控制器的。主视图的第一个视图控制器显示了工具栏按钮,如果我按下第二个视图控制器并隐藏工具栏,那么在弹出第二个视图控制器后,第一个视图控制器的工具栏上的按钮将永远消失。(即显示一个空白工具栏)。工具栏按钮在第一个视图控制器的viewDidLoad中初始化。并且通过在第二个视图控制器的viewDidLoad中调用self.navigationController setToolbarHidden:YES来隐藏工具栏,并且通过在第一个视图控制器的viewDidLoad中调用self.navigationController setToolbarHidden:NO来再次显示工具栏。

有什么建议吗?在导航控制器中隐藏/取消隐藏工具栏的正确方法是什么?

顺便说一句,它在iOS 4.3、5.1.1和iPad上的iOS 6.0横向模式上都很好。此问题仅在iPad中的iOS 6.0纵向模式下出现。

编辑:在iPhone,iOS6.0上,同样的问题。但是,使用iOS 6.0时,iPad的横向模式很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-23 10:21:46

因为这个问题也会出现在安装了iOS 6.0的iPhone上,所以它可能与UISplitView纵向模式无关(尽管UISplitView横向模式也可以)。

所以我把重点放在了UINavigationController的工具栏显示/隐藏上,这个线程(Toolbar in Navigation Controller)解决了我的问题。

我删除了viewDiDLoad和viewWillAppear中的setToolBarHidden代码,并实现了UINavigationController委托协议:

代码语言:javascript
复制
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    BOOL shouldHide = [viewController.toolbarItems count] == 0;
    [navigationController setToolbarHidden:shouldHide animated:animated];
}

现在它起作用了。然而,我仍然不明白为什么原始代码不能在iPhone和iPad纵向模式下的iOS 6.0中工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12544605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档