關(guān)于模態(tài)切換視圖遇到的問題

最近遇到一個自定義類Tabbar的視圖,于是用模態(tài)方式去自由切換viewController,關(guān)鍵方法是:

- (void)transitionFromViewController:(UIViewController *)fromViewController toViewController:(UIViewController *)toViewController duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^ __nullable)(void))animations completion:(void (^ __nullable)(BOOL finished))completion NS_AVAILABLE_IOS(5_0);

不過在完成之后 來回快速點擊會發(fā)現(xiàn)崩潰的問題
Unbalanced calls to begin/end appearance transitions for xxx
發(fā)現(xiàn) transitionFromViewController 這個方法若當(dāng)前viewController已在最前,就不應(yīng)該在調(diào)用該方法,于是解決辦法如下:

- (void)replaceFromViewController:(ALYBaseViewController *)first toViewController:(ALYBaseViewController *)second index:(NSInteger)idx completion:(void (^)(ALYBaseViewController *, ALYBaseViewController *, NSInteger))completion{
    // 判斷是否是一個vc
    if ([second isEqual:first] return;
    
    [self addChildViewController:second];
    [self transitionFromViewController:first toViewController:second duration:0 options:UIViewAnimationOptionTransitionNone animations:^{
        [second didMoveToParentViewController:self];
        [first willMoveToParentViewController:nil];
        [first removeFromParentViewController];

        completion(first, second, idx);
    } completion:^(BOOL finished) {
        if (finished) {
        }
    }];
}

記錄一下。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容