1、使用 popToRootViewControllerAnimated:YES 返回,导致 TabBar 会被隐藏问题
这个问题是在 Xcode 12 + iOS 14 下才会出现,不清楚是系统 bug 还是苹果修改了什么规则,目前自己通过验证的解决办法是:
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {
if (self.viewControllers.count == 1) {
viewController.hidesBottomBarWhenPushed = YES;
}else {
viewController.hidesBottomBarWhenPushed = NO;
}
[super pushViewController:viewController animated:animated];
}
具体可以看 这里。
但是上面这么设置会发现有些时候,打开应用第一次进入第三级页面 TabBar 会跑出来,不知道什么原因,欢迎大家给出建议。
还有一种最简单粗暴的方式是把 popToRootViewControllerAnimated:NO 动画关了,只要能接受没有动画的效果。
2、iOS 14模拟器运行报错问题
真机能够跑起来,但是发现 iPhone 12 的模拟器会报出各种奇怪的错误,这时候尝试在 Build Settings -> User Defind -> VALID_ARCHS 中添加 arm64 armv7 armv7s x86_64 试试看。
3、Label 文本显示异常问题
经过测试发现 Label 显示同样的文本,需要的宽高多出来一点,如果之前设置的宽高刚好能显示的,在 iOS 14 下可能位置就不够。
4、UITableViewCell 上面的控件点击不了问题
会发现在 cell 上面有一层 UITableViewCellContentView 挡住了,其实这个是代码不规范引起的,如果之前在 cell 中直接添加控件在 self 上面就会出现这个问题,正确做法是控件添加在self.contentView 上面。
如果 iOS 14 跟 Xcode 12 如果还有其他坑,欢迎大家一起交流!