通常iOS開發(fā)中會(huì)自定義Tab畏梆,跳轉(zhuǎn)時(shí)通常會(huì)使如下代碼直接跳轉(zhuǎn):
LZHTabBarController *tabVC = [[LZHTabBarController alloc]init];
[UIApplication sharedApplication].delegate.window.rootViewController = tabVC;
這個(gè)時(shí)候Xcode會(huì)警告Unbalancedcalls tobegin/endappearance transitionsfor<TabBarController:0x160806c00>.
原因就是控制器跳轉(zhuǎn)時(shí)動(dòng)畫未結(jié)束就立馬進(jìn)行下一步咕别,解決方法就是通過GCD延時(shí)讓動(dòng)畫先結(jié)束再跳轉(zhuǎn),代碼如下:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
? ? ? ? ? ? ? LZHTabBarController *tabVC = [[LZHTabBarController alloc]init];
? ? ? ? ? ? ? [UIApplication sharedApplication].delegate.window.rootViewController = tabVC;
? ?});
建議延時(shí)最低0.1s冬骚,保證動(dòng)畫能夠結(jié)束,太長會(huì)影響跳轉(zhuǎn)視覺效果
同時(shí)也可在自定義的Tab中添加如下代碼預(yù)防問題: