在iOS 8中,将UISplitViewController上的preferredDisplayMode设置为PrimaryOverlay会生成以下警告:

“UINavigationController的开始/结束外观转换的不平衡调用”

如果我将preferredDisplayMode设置为AllVisible或根本不设置它,则没有问题。 我尝试过的模拟器中的所有iPad和iPhone都出现问题。 无论应用程序是纵向还是横向启动,都会出现问题。

这是一些非常简单的代码:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; UITableViewController *tableViewController = [[UITableViewController alloc] init]; UIViewController *viewController = [[UIViewController alloc] init]; UINavigationController *masterNavController = [[UINavigationController alloc] initWithRootViewController:tableViewController]; UINavigationController *detailNavController = [[UINavigationController alloc] initWithRootViewController:viewController]; UISplitViewController *svc = [[UISplitViewController alloc] init]; [svc addChildViewController:masterNavController]; [svc addChildViewController:detailNavController]; //svc.preferredDisplayMode = UISplitViewControllerDisplayModeAllVisible; svc.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryOverlay; self.window.rootViewController = svc; [self.window makeKeyAndVisible]; return YES; } 

#1楼 票数:11 已采纳

将您的显示代码包装在dispatch_async 否则iOS似乎与同时运行的其他动画混淆。

dispatch_async(dispatch_get_main_queue(), ^{
    svc.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryOverlay;
});

要么

dispatch_async(dispatch_get_main_queue()) {
    svc.preferredDisplayMode = .PrimaryOverlay
}

  ask by Mike Zauzig translate from so

未解决问题?本站智能推荐:

1回复

在iPhone上使用SplitViewController的iOS8Storyboard获得不平衡的调用以开始/结束外观转换

我遇到一个问题,出现“开始/结束外观转换的不平衡呼叫”错误。 在其他一些SO问题中,也记录了这种情况,原因是由于各种原因而导致在另一个转换完成之前开始转换,但是我的情况似乎与所记录的任何情况都不匹配。 为了缩小问题的范围,我通过执行以下操作构建了一个小的测试用例: 使用主从应用程序模板
1回复

当我在SplitViewController的主视图中选择tableViewCell时未调用PrepareForSegue

我使用TableViewController作为SplitViewController主视图。 一切看起来都prepareForSegue()但是我不明白为什么单击任何行时为什么没有调用prepareForSegue() ? 我可以通过在tableView.didSelectRowAtIn
1回复

“为UINavigationController开始/结束外观转换的不平衡调用”?[关闭]

我只是在纵向视图中编译我的ipad应用程序,我只是移至视图以拆分视图,然后又回到遇到错误的视图: 对UINavigationController的 开始/结束外观过渡的不平衡调用 我正在使用xcode 4.3.2。 我刚刚编译了xcode 4.2版本,没有任何问题。 有人知道为什么
2回复

UISplitViewController中开始/结束外观转换的不平衡调用

我的UISplitViewController基本上像UISplitViewController一样工作,除了在第一次(仅第一次!)从主表视图转换到详细视图时会显示一条令人讨厌的错误消息。 主视图和详细视图控制器都嵌入在UINavigationController 。 但是,该错误仅在设置
1回复

设备旋转后,UISplitViewController和MMDrawerController的开始/结束外观过渡的不平衡调用?

我有一个iPad应用程序,它使用MMDrawerController和UISplitViewController作为中心视图控制器,可以在左右两个环境中运行。 左视图控制器是带有UITableView的UIViewController,可在应用程序的不同部分之间导航。 在不旋转设备的情况下,
1回复

呼叫开始/结束状态转换的不平衡呼叫

我在iPad应用程序上使用splitViewController,但在此之前,我有一个登录名,并且在成功通过身份验证后,刷新了根视图和详细信息视图。 问题是,一旦我加载了mainview,一切都不会发生,我尝试通过推送任何视图而没有任何事件。 当我以模态方式加载“登录”视图时,出现以下错误
1回复

呼叫开始/结束状态转换的不平衡呼叫

我在iPad应用程序上加载了splitViewController。 但是用一个空的数据数组加载它。 然后,加载登录视图,并在成功通过身份验证后刷新根视图和详细信息视图。 并且由于您已通过身份验证,因此会加载数据。 但是,当我以模态方式加载“登录”视图时,出现此错误: 码:
1回复

呼叫开始/结束状态转换的不平衡呼叫在iPad人像中

我的一个应用程序的iPad版本使用UISplitViewController,在这两个视图控制器上都加载了UINavigationControllers。 在发生某些事件时,两个视图控制器都会推送并弹出新的控制器。 在横向使用该应用程序时,一切正常,而在纵向使用该应用程序时,我得到: