1

我在 iOS 6.1.2 中的 iPad 上使用带有 UISplitViewController 的 UITabBarController(主视图控制器具有 UITableViewController)时遇到异常行为。如果我有多个选项卡,其中至少一个选项卡包含拆分视图控制器,并且在查看包含拆分视图控制器的选项卡时处于横向模式,然后我切换到另一个选项卡,然后移动到纵向模式,然后按包含拆分视图控制器的选项卡,接下来发生的是主视图控制器(表视图控制器)将在详细视图顶部显示表视图,而它显然不应该在那里。此行为仅在应用程序第一次加载时发生,但行为一致。

这个场景很容易通过简单地创建一个项目来重新创建,该项目是一个使用 iPad 设备和 Core Data 的拆分视图应用程序(没有使用 Core Data 就没有尝试过)。创建项目后,使用情节提要并添加标签栏控制器并使其成为初始视图控制器,然后将标签栏控制器的视图控制器序列添加到拆分视图控制器。之后,只需要在代码中进行一项更改,即更改 AppDelegate.m 中 application:didfinishLaunchingWithOptions 中的一行:

更改以下模板代码:

UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;

至:

UITabBarController *tbc = (UITabBarController *)self.window.rootViewController;
UISplitViewController *splitViewController = [tbc.viewControllers lastObject];

也许我违反了一些 iOS 规则,并试图做一些我不应该做的事情?我想做的就是能够在几个不同的拆分视图控制器之间切换。建议?

4

1 回答 1

3

看看这个 Git。

https://github.com/nalyd88/DCToolkit/tree/master/DCToolkit/DCToolkit

据我了解,问题源于拆分视图控制器在不可见时未更新其方向。

这里使用了一个子类选项卡视图控制器和拆分视图控制器来传递消息。


感谢http://objectiveseesharp.wordpress.com/上的 Dylan 提供的解决方案!我刚找到它。

于 2013-05-18T12:39:00.057 回答