关于 iphone:Modal UIViewController 总是在 iPad 上全屏显示。为什么? | 珊瑚贝

Modal UIViewController always coming out full screen on iPad. WHY?


我正在尝试在 iPad 上创建一个简单的模态对话框,无论是小 (UIModalPresentationFormSheet) 还是大 (UIModalPresentationPageSheet) 设置,但无论我做什么,它们都会全屏显示(带有标题栏)。

模态 UIViewController 是在界面构建器中创建的,我似乎无法为其指定大小。为 UIViewController 中包含的 UIView 指定较小的尺寸无效。

我做错了什么?什么可能会影响这个问题?可能是我设置modalPresentationStyle的时间吗?我已经尝试过使用 UINavigationController 和不使用 UINavigationController,但得到了相同的结果。


在调用 presentModalViewController:animated.

之前,必须在父 ViewController 中设置 modalPresentationStyle

1
2
3
4
5
myViewController = // create your new controller if needed
myViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
myViewController.modalPresentationStyle = UIModalPresentationFormSheet;
//”self” is the parent ViewController
[self presentModalViewController:myViewController animated:YES]
  • 这是否意味着整个层次结构应该是模态的?因为据我了解,我的根(顶部) UIViewController 是一个普通的非模态视图。我也应该用 presentModalViewController:animated 来展示那个吗?
  • 不,父级可以是非模态 UIViewController。


我已经想通了。原来我使用的是 UIModalPresentationPageSheet,它总是在纵向模式下全屏显示。因为我的模态 UIViewController 没有响应 shouldAutorotateToInterfaceOrientation,所以它强制为纵向,这就是我认为模态弹出窗口不起作用的原因。

通过简单地向我的模态 UIViewController 添加一个 shouldAutorotateToInterfaceOrientation 处理程序,返回 YES,我现在看到在横向模式下我得到一个覆盖大部分(但不是全部)屏幕的大弹出窗口,这就是我已经一直在期待。


来源:https://www.codenong.com/4672314/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9853.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?