• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

objective-c - 从 UISplitViewController 呈现的 modalViewController 出现方向错误

[复制链接]
菜鸟教程小白 发表于 2022-12-13 15:00:48 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个 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。这可能是什么原因造成的?



Best Answer-推荐答案


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

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

并不总是按预期运行。

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

 - (void)viewDidAppearBOOL)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)viewDidLoadBOOL)animated 
由于线程问题(一个线程可能会在主线程将旋转传递给 subview (和模态 Controller )之前开始绘制您的 subview 或模态 Controller 的 View )。比我有更多线程经验的人可能会对此有所了解。

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

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap