gpt4 book ai didi

objective-c - 从 UISplitViewController 呈现的 modalViewController 显示为错误的方向

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:14:37 24 4
gpt4 key购买 nike

我有一个 UISplitViewController 设置在我的应用程序的 rootView 中。当在我的左 View Controller 中调用 viewDidLoad 时,我会进行检查,然后使用以下内容呈现模态视图 Controller :

SiteConfiguration *config = [[SiteConfiguration alloc] initWithStyle:UITableViewStyleGrouped];
config.firstLoad = YES;
UINavigationController *configNav = [[UINavigationController alloc] initWithRootViewController:config];
if ([Utility isIpad]) {
configNav.modalPresentationStyle = UIModalPresentationFormSheet;
configNav.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[[AppDelegate instance].splitViewController presentModalViewController:configNav animated:YES];
} else {
[self presentModalViewController:configNav animated:YES];
}

如果 iPad 在加载应用程序时处于横向模式,则 modalView 会以错误的方向显示:

enter image description here

我可以旋转 iPad 来解决这个问题,但为什么加载错误?我的 shouldAutorotateToInterfaceOrientation: 在我的 SiteConfiguration viewController 中返回 YES。可能是什么原因造成的?

最佳答案

请注意您选择在哪里展示模态 Controller 。我有一些自定义模态 Controller 的经验,并在

中设置模态 Controller (及其阴影!)的方向
 - (void)viewDidLoad:(BOOL)animated 

并不总是按预期行事。

把你的代码(presentModalViewController:configNav animated:YES)放在

 - (void)viewDidAppear:(BOOL)animated 

instead. (Do this as well with any code that sets a subviews frame or does any manipulation of layers, e.g. the shadow layer and shadow properties).

As far as I can tell, the rotation may not be apparent to subviews of the rotated view until after

 - (void)viewDidLoad:(BOOL)animated 
由于线程问题(一个线程可能会在主线程将旋转传递给 subview (和模态 Controller )之前开始绘制 subview 或模态 Controller 的 View )。比我拥有更多线程经验的人可能会对此有更多的了解。

关于objective-c - 从 UISplitViewController 呈现的 modalViewController 显示为错误的方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11568023/

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