gpt4 book ai didi

iOS:在TabBar应用中隐藏SplitView的rootViewController

转载 作者:行者123 更新时间:2023-11-29 13:47:03 24 4
gpt4 key购买 nike

我有一个 TabBar iPad 应用程序,在第一个选项卡中有一个拆分 Controller 。我按照以下说明进行制作:

http://www.iphonedevsdk.com/forum/iphone-sdk-development/62217-simplest-way-make-split-controller-tab-bar-controller.html

现在我的目标是隐藏拆分 Controller 的 Root View Controller 。我找到了一种方法来实现这一点:

http://vimeo.com/13054813

但这对我不起作用,因为它只在假设拆分 Controller 位于 MainWindow.xib 中时才有效。但是使用之前的方法,拆分 Controller 是通过编程方式添加的。

有人可以帮助我实现目标吗?任何想法将不胜感激。

提前致谢!


代码如下:

http://dl.dropbox.com/u/27695108/MariCruz.zip

我希望你能帮助我。

谢谢!

最佳答案

您的项目有几个问题。

1 第一个是您使用的是 UITabBarController ,这就是为什么您找到的隐藏 Root View Controller 的代码不起作用的原因。

  1. 第二个是您对 makeSplitViewController 的实现,你在这里初始化两次你的 splitViewController , rootViewController , 和 detailViewController .

因此,您必须修复第 2 点,以便您可以正确管理所有这些 Controller ,然后您应该修改 toggleSplitView这样您就可以考虑到您正在使用 UITabBarController 这一事实。例如,将该方法的前几行替换为以下几行:

- (void)toggleSplitView {

NSArray *controllers = _tabBarController.viewControllers;
UIViewController* controller = [controllers objectAtIndex:1];

if (controller.view == splitViewController.view) {

[splitViewController.view removeFromSuperview];

splitViewController.viewControllers = [NSArray arrayWithObjects:rootViewController, rootViewController, nil];

splitViewController.view = detailViewController.view;

} else {
....

正如你所说,我没有访问 _window检查 UISplit 是否存在,因为该 View 不在 _window 下,而是在选项卡栏中。 if的另一家分行也需要根据相同的标准重写,但我会留给你。

以上代码仅适用于您的第二个选项卡(对应于索引 1 的选项卡);事实上,因为你正在覆盖 splitViewControllermakeSplitViewController ,我只能使用标签栏中索引为 1 的元素,而无需进行进一步更改。

关于iOS:在TabBar应用中隐藏SplitView的rootViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6923347/

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