gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 04:24:30 25 4
gpt4 key购买 nike

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

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

顺便说一句,它在 iOS 4.3、5.1.1 上运行良好,在 iPad 上的 iOS 6.0 横向模式下运行良好。此问题仅发生在 iPad 的 iOS 6.0 纵向模式下。

编辑:在 iPhone、ios 6.0 上,同样的问题。不过,在运行 iOS 6.0 的 iPad 的横向模式下效果很好。

最佳答案

由于此问题也出现在 iOS 6.0 的 iPhone 上,因此可能与 UISplitView 纵向模式无关。(尽管 UISplitView 横向模式没问题)。

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

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

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

关于ios - iOS 6.0 上 uisplitiview 主视图中的工具栏隐藏/取消隐藏问题,纵向模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12544605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com