自從Xcode升級到9以后就小問題不斷,今日又遇到一個問題。我的程序架構用的是一個tabbar對應四個導航控制器,然后我的需求是從首頁的第四個界面,進入到他的下一級界面后,還要再直接返回到首頁的第三個界面,但是當我調用如下代碼后,卻發(fā)現(xiàn)首頁底部的tabbar消失了。
[weakSelf.navigationController popToRootViewControllerAnimated:NO];
weakSelf.navigationController.tabBarController.selectedIndex = 2;
1
2
3
????????本以為是從首頁跳轉到下一級界面的時候調用了hidesbottombarwhenpushed = YES;的問題,但調試后發(fā)現(xiàn)并不是這個問題,然后我又在首頁的第三個界面的viewWillApper方法中,把對應的tabbar的隱藏屬性修改為不隱藏,但發(fā)現(xiàn)還是消失了。這時我猜測可能是回退站的機制出問題了,然后我注視掉了[weakSelf.navigationController popToRootViewControllerAnimated:NO];這句代碼,這時從首頁第四個界面的子視圖返回到首頁第三個界面時tabbar不消失了,但是我點擊首頁第四個界面的tabbar按鈕時,仍然顯示的是首頁第四個界面的子視圖。最終又經(jīng)過幾次嘗試,發(fā)現(xiàn)問題的解決方案很簡單,只需要把這兩行代碼的順序調整一下就行了,像下邊這樣,但目前并沒有找到造成這個問題根本的原因是什么。
weakSelf.navigationController.tabBarController.selectedIndex = 2;
[weakSelf.navigationController popToRootViewControllerAnimated:NO];