項(xiàng)目中遇到一個(gè)問題:
項(xiàng)目背景:用UIViewControllerInteractiveTransitioning做頁面間自定義轉(zhuǎn)場動(dòng)畫盒发,某個(gè)場景需要從VC3直接跳轉(zhuǎn)VC1,利用popToViewController來實(shí)現(xiàn)狡逢。
問題:pop過程可能被cancelInteractiveTransition宁舰,但是navigationController.viewControllers中間頁VC2在pop的時(shí)候已經(jīng)被釋放。會(huì)出現(xiàn)下次退出的時(shí)候退出到了VC0奢浑。
解決方法:pop之前設(shè)置屬性強(qiáng)引用VC2蛮艰、VC1。
1.如果finishInteractiveTransition雀彼,則不做任何操作并將強(qiáng)引用的屬性置為nil壤蚜;
2.如果cancelInteractiveTransition即寡,將VC2、VC1手動(dòng)添加到navigationController.viewControllers(用setViewControllers:方法)并將強(qiáng)引用的屬性置為nil袜刷。
注意:此時(shí)不用擔(dān)心cancelInteractiveTransition會(huì)將VC1自動(dòng)壓棧聪富,因?yàn)槭謩?dòng)改變了navigationController.viewControllers的棧結(jié)構(gòu)。