iOS13中presentViewController的问题 更新了Xcode11.0 beta之后,在ioS13中运行代码发现presentViewController和之前弹出的
iOS13中presentViewController的问题
更新了Xcode11.0 beta之后,在ioS13中运行代码发现presentViewController
和之前弹出的样式不一样。
会出现这种情况是主要是因为我们之前对UIViewController
里面的一个属性,即modalPresentationStyle
(该属性是控制器在模态视图时将要使用的样式)没有设置需要的类型。在iOS13中modalPresentationStyle
的默认改为UIModalPresentationAutomatic
,而在之前默认是UIModalPresentationFullScreen
。
@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];
私有KVC
在使用iOS 13运行项目时突然APP就crash
掉了。定位到的问题是在设置UITextField
的Placeholder
也就是占位文本的颜色和字体时使用了KVC的方法:
[_textField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];
[_textField setValue:[UIFont systemFontOfSize:14] forKeyPath:@"_placeholderLabel.font"];
可以将其替换为
_textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"姓名" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14],NSForegroundColorAttributeName:[UIColor redColor]}];
并且只需要在初始化的时候设置attributedPlaceholder
即富文本的占位文本,再重新赋值依然使用placeolder
直接设置文本内容,样式不会改变。(想要这种效果的话需要在初始化attributedPlaceholder时的字符串不为空)
Universal Link(通用链接)
在Xcode11中配置Universal Link(通用链接)步骤:
在iOS13之前在其他APP去safari中打开Universal Link
(通用链接)系统匹配域名是全匹配,而在iOS13之后规则发生了变化,猜测是包含关系。比如在iOS13之前,如果Universal Link
(通用链接)为w.mydomain.com
那么在微信或者其他APP访问www.mydomain.com
然后点击去safari打开则不会拉起相应APP,而在iOS13则会拉起相应APP。
而在safari中输入的链接则依然和iOS之前一样,只有www.mydomain.com
才会提示打开相应APP。
修改APP名称(修改DisplayName值)
project.pbxproj
中的所有PRODUCT_NAME = "$(TARGET_NAME)"
;。DisplayName
时只是修改info.plist
中的Bundle display name
值,但是在Xcode11.0中修改该值则会把project.pbxproj
中的一个PRODUCT_NAME
改为修改后值,如果在项目中通过[NSBundle mainBundle] infoDictionary]
取kCFBundleExecutableKey
的就会有影响,并且对Build Settings
中的Packaing
中的一些名称有影响,可能还会有其他影响有待关注。--结束END--
本文标题: iOS13 适配和Xcode11.0踩坑小结
本文链接: https://www.lsjlt.com/news/30348.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-01-21
2023-10-28
2023-10-28
2023-10-27
2023-10-27
2023-10-27
2023-10-27
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0