Unbalanced calls to begin/end appearance transitions for

释放双眼,带上耳机,听听看~!

Log

刚才在项目中添加了一个功能:用户在注册界面注册成功后跳回登陆界面,然后执行自动登陆,登陆成功后返回上一层,垒完代码后随即用ipod touch 5 测试了下,Xcode报了一个Log:

Unbalanced calls to begin/end appearance transitions for <UIViewcontroller>


分析

大概知道错在那个位置了,下面贴下代码:

RegisterViewController:

RegisterViewController

LoginViewController:

接收通知:“kUserRegisteredSuccessfully”
通知事件
登陆成功后pop到上层

上面的代码逻辑大概是这样的,连续使用了两次popViewController(animated: true),还有一个bug:在iPod touch 5 上RegisterViewController不会pop回上层界面,在 iPhone 6s上没有这个情况。


原因

1.出现Unbalanced calls to begin/end appearance transitions for UIViewcontroller这样的Log,其原因就是在容器类的UIViewController(如,UINavigationController, UITabBarController)中动画没做完,然后又开始新的动画。

2.第二个pop效果没有展示,我认为和设备的处理速度有关,如有大神知道原因请回复指导


解决

解决办法:
1⃣️让动画完后再做新的动画。
2⃣️animated改为false,就是去掉动画效果。
3⃣️。。。留给大家提出更好的解决办法

根据个人需要,我选择了后者,由登陆pop回注册界面时去掉动画效果,即animated改为false,这样两个连续的pop动作只保留一个动画效果就不会出现上面的情况了。

 

人已赞赏
iOS文章

iOS 如何使用Masonry根据子视图size改变父视图size(MBProgressHUD)

2019-10-15 17:29:32

iOS文章

iOS 自定义UITableViewCell分割线,拽几下复用消失的问题

2019-10-15 18:38:58

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索