gpt4 book ai didi

ios8 - UISplitViewControllerDisplayModePrimaryOverlay 导致 "Unbalanced calls to begin/end appearance transitions"

转载 作者:行者123 更新时间:2023-12-01 07:55:38 26 4
gpt4 key购买 nike

在 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;
}

最佳答案

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

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

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

关于ios8 - UISplitViewControllerDisplayModePrimaryOverlay 导致 "Unbalanced calls to begin/end appearance transitions",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27950888/

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