如何实现UIsplitView的动画切换?

3

我已经查看了在iPad上创建新的UISplitView应用程序时由xcode生成的示例,以及无数其他教程和来自苹果开发者网站的文档。我没有看到使用的UISplitView不是应用程序的根目录的示例。这种情况是否可能?

我想实现的目标是:我有一个UITableView,一旦选择了列表中的项目,我想显示一个分割视图,其中包含基于所选项目的两个不同集合的信息。

我想知道这种实现方式是否可能,或者被反对,并且为什么。如果可能,我该如何实现并连接UISplitView以以这种方式运行?

编辑:我正在更新我的内容。我现在可以切换到我的UISplitView,但过渡效果没有动画。正确切换到UISplitView的方法是什么,以便过渡具有动画效果?

切换代码如下:

[appDelegate.window addSubview:appDelegate.splitViewController.view];
appDelegate.window.rootViewController = appDelegate.splitViewController; 

编辑2:为了让更多的人看到,我已经成功从我的navigationController切换到了splitViewController,但当我添加按钮以便能够导航回去时,无论我做什么都没用,并且似乎被锁定在里面。我尝试反向镜像代码以切换到splitViewController,但没有任何影响,并且我完全没有任何想法。有谁能给点提示吗?


1
UISplitViewController是像任何其他视图控制器一样的视图控制器。因此,您可以在应用程序中随时创建并使用它。 - onnoweb
这很有道理,所以当我发现没有集成它的示例时,我感到非常惊讶。我想我并不是非常了解SplitViews,你能给我一个大致的实现思路吗?我需要我的RootViewController和DetailViewController用于两个可能的视图,但那些只是普通的VC。我应该在哪里/如何创建我的实际SplitViewController? - Karoly S
我修改了你的问题标题 - 希望它更好地展示了你想要的内容。如果有误,请随时恢复。 - Paŭlo Ebermann
3个回答

6

您应该始终将SplitViewController用作rootViewController:分割视图控制器必须是根视图控制器

可能有一些变通方法,但是当苹果公司有强烈的建议和设计指导时,我建议在违反平台之前重新考虑您的设计-这应该在长期内节省您的精力。


3

我建议使用MGSplitViewController,它可以作为非rootViewController使用,甚至可以嵌套到另一个MGSplitViewController中。如果你需要的是Master-View淡入动画,那么只需要一行代码即可实现。


1
在你的UITableView的didSelectRowAtIndexPath方法中,你会有类似以下的代码:
UISplitViewController *mySplitView = [[UISplitViewController alloc] init];
[self.navigationController pushViewController:mySplitView animated:YES];
[mySplitView release];

可能你会想要像其他视图控制器一样子类化UISplitViewController,并在其中设置主视图和详细视图等。


2
所以我将你说的内容与这个问题的答案结合起来:https://dev59.com/qU3Sa4cB1Zd3GeqPytqA。这似乎可以编译,但当我尝试实际选择一行时,会出现“Split View Controllers cannot be pushed to a Navigation Controller”错误。有什么建议可以解决这个问题吗? - Karoly S
好的,我改变了我的应用程序结构,并且拥有了我想要的功能,尽管它的行为方式不是理想的,主要是它没有动画效果。有没有办法切换到UISplitView并使更改具有动画效果? - Karoly S

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接