在我們的應用程序中,有很多地方需要快速彈出視圖控制器沒有動畫,然後推動一個新的動畫。我們會做類似iOS 8:UINavigationController彈出沒有動畫,然後推
[navController popViewControllerAnimated:NO];
[navController pushViewController:newVC animated:YES];
預iOS8上,這個工作得很好,並動畫顯示在當前一個滑動在新的視圖控制器,因爲導航控制器首先彈出沒有動畫。
現在與iOS8,這似乎已經改變,現在發生的事情是頂部視圖控制器被彈出,基礎視圖控制器閃爍一秒鐘,然後新的視圖控制器被推上。我從頭開始爲iOS8創建了一個Xcode項目,並試圖對此進行測試。 Please see this GIF來演示它的外觀。每次我們點擊分割視圖主側的按鈕之一時,我們都會在分割的細節(右側)執行上述兩行代碼。請注意,灰色視圖(這是導航控制器的根目錄)會在按下新視圖之前短暫閃爍一秒。
我試圖尋找任何原因,爲什麼這可能在iOS8中發生了變化,但我似乎無法找到任何文檔。任何人對可能導致這種變化的原因有什麼想法?任何投入將不勝感激!
而且,我試圖與代碼玩耍,發現執行以下代碼,而不是
NSMutableArray *viewControllers = [NSMutableArray arrayWithArray:navController.viewControllers];
[viewControllers removeLastObject];
[viewControllers addObject:newVC];
[navController setViewControllers:viewControllers animated:YES];
似乎解決這個問題。不過,如果可能的話,我寧願不要使用它,因爲我們的應用程序中有很多地方可以做這種雙線彈出式組合,我寧願不必在整個地方改變它。
謝謝!
在我看來,iOS8實際上做得很對,無論你在iOS8之前看到的是什麼,都可能是沒有意義的。 – Mike 2014-09-05 18:51:02
我發現,即使我做推動然後流行,我仍然得到時髦的動畫。 – Chris 2014-09-11 23:17:43
您是否找到有關此問題的原因或解決方案?請更新。 – 2014-09-29 16:22:54