问题一:
(1)代码场景:由一个TabBarController present跳转到另一个TabBarController
(2)测试环境:iphoneXR、iphoneX、iphone 8
(3)测试过程:项目在XR、X、iphone 8 上都能正常编绎和运行,但是通过 iphone 8 在 Xcode11 真机调试时会有下面的日志输出:
Unbalanced calls to begin/end appearance transitions for <TabBarController: 0x160806c00>.
解决:
可以在 present 控制器的时候加个GCD延时。代码如下:
__weak typeof(self) weakSelf = self;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//跳转控制器的代码
[weakSelf presentViewController:<#(nonnull UIViewController *)#> animated:<#(BOOL)#> completion:<#^(void)completion#>]
});
问题二:
(1)问题场景:在iOS 13的环境下,由A控制器present到B控制器,B控制器没有全屏,如下图:
解决:
设置modalPresentationStyle属性的值为UIModalPresentationFullScreen,代码如下:
secodeController.modalPresentationStyle = UIModalPresentationFullScreen;
问题三
(1)测试环境:Xcode 11,iOS 13
(2)问题场景:代码中使用UITextView实现部分文字点击功能,当点击部分文字时,Xcode控制台会输出下面信息:
[general] Connection to daemon was invalidated
这个问题并不影响程序的正常编绎或执行。
解决:
将UITextView的是否可选属性的值设置为NO,代码如下:
textView.selectable = NO;