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值)
- 在Xcode创建项目时默认的
project.pbxproj
中的所有PRODUCT_NAME = "$(TARGET_NAME)"
;。 - 在Xcode11.0之前如果修改
DisplayName
时只是修改info.plist
中的Bundle display name
值,但是在Xcode11.0中修改该值则会把project.pbxproj
中的一个PRODUCT_NAME
改为修改后值,如果在项目中通过[NSBundle mainBundle] infoDictionary]
取kCFBundleExecutableKey
的就会有影响,并且对Build Settings
中的Packaing
中的一些名称有影响,可能还会有其他影响有待关注。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。