【问题标题】:toolbar hide/unhide issue in master view of uisplitiview on ios 6.0, portrait modeios 6.0 上 uisplitview 主视图中的工具栏隐藏/取消隐藏问题,纵向模式
【发布时间】:2012-09-14 16:58:13
【问题描述】:

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

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

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

编辑:在 iPhone、ios 6.0 上,同样的问题。但是,在装有 iOS 6.0 的 iPad 的横向模式下很好。

【问题讨论】:

    标签: ios uinavigationcontroller uisplitviewcontroller uitoolbar ios6


    【解决方案1】:

    由于 iOS 6.0 的 iPhone 也会出现此问题,因此可能与 UISplitView 纵向模式无关。(虽然 UISplitView 横向模式很好)。

    所以我专注于 UINavigationController 的工具栏显示/隐藏,这个线程(Toolbar in Navigation Controller)解决了我的问题。

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

    - (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 上不起作用。

    【讨论】:

      猜你喜欢
      • 2018-02-22
      • 2013-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-12
      • 1970-01-01
      相关资源
      最近更新 更多