iOS 问题及解决方法

问题一:
(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 .

解决:
可以在 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控制器没有全屏,如下图:


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;

你可能感兴趣的:(iOS 问题及解决方法)