iOS13中presentViewController的问题
更新了Xcode11.0 beta之后,在iOS13中运行代码发现presentViewController
和之前弹出的样式不一样。
会出现这种情况是主要是因为我们之前对UIViewController
里面的一个属性,即modalPresentationStyle
(该属性是控制器在模态视图时将要使用的样式)没有设置需要的类型。在iOS13中modalPresentationStyle
的默认改为UIModalPresentationAutomatic
,而在之前默认是UIModalPresentationFullScreen
。
/*
Defines the presentation style that will be used for this view controller when it is presented modally. Set this property on the view controller to be presented, not the presenter.
If this property has been set to UIModalPresentationAutomatic, reading it will always return a concrete presentation style. By default UIViewController resolves UIModalPresentationAutomatic to UIModalPresentationPageSheet, but other system-provided view controllers may resolve UIModalPresentationAutomatic to other concrete presentation styles.
Defaults to UIModalPresentationAutomatic on iOS starting in iOS 13.0, and UIModalPresentationFullScreen on previous versions. Defaults to UIModalPresentationFullScreen on all other platforms.
*/
@property(nonatomic,assign) UIModalPresentationStyle modalPresentationStyle API_AVAILABLE(ios(3.2));
要改会原来模态视图样式,我们只需要把UIModalPresentationStyle
设置为UIModalPresentationFullScreen
即可。
ViewController *vc = [[ViewController alloc] init];
vc.title = @"presentVC";
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
nav.modalPresentationStyle = UIModalPresentationFullScreen;
[self.window.rootViewController presentViewController:nav animated:YES completion:nil];
文章若有不对地方,欢迎批评指正
内容来源于网络如有侵权请私信删除
- 还没有人评论,欢迎说说您的想法!