2015-07-21 70 views
3

我們試圖在兩個視圖之間的應用程序中添加交互式轉換。我們可以使其在iOS 7或iOS 8 上正常工作,而不顯示導航欄。但是,我們需要顯示一個導航欄。爲了演示(一些)我們遇到的問題,我創建了一個小的原型,其屏幕截圖如下所示。我嘗試過UIPercentDrivenInteractiveTransition,但發現有足夠的帖子聲稱它有我擺脫它的問題。iOS 8 +交互式過渡+導航欄顯示=已損壞?

來源https://github.com/xaphod/TransitionBugger

下面是它看起來像在iOS 8,具有navigationController,但導航欄設置不要在故事板顯示:它工作正常

Works on iOS 8 without navbar

下面是完全一樣的東西,但顯示導航欄。當有一個導航欄,然後以某種方式有沒有在toViewcontroller收到觸摸過渡完成後(注意UIButton的怎麼沒有得到一個觸摸事件):

Broken on iOS 8 with navbar

也許能說明問題的是,出現的導航欄處於破碎狀態。觀察如果我爲應用程序創建背景並重新進入應用程序會發生什麼 - 導航欄狀態發生變化:僅當應用程序到達前臺時,「項目」欄按鈕纔會更改爲「返回」。爲什麼會發生?

navbar changes when app backgrounded

我已經閱讀計算器至少12個職位,objc.io,和其他地方有很多建議的解決方案和教程等,我們把它們都試過,包括這些線程:

"From View Controller" disappears using UIViewControllerContextTransitioning(我們的主要應用是有另外一個問題)

Touches not recognized after custom transition

...但他們只當沒有導航欄顯示工作n

我們如何使iOS 8上的導航欄與交互式轉換工作?所有幫助非常感謝。

回答

0

我們最終不再使用UINavigationControllerDelegate方法,因爲我們還需要轉換視圖來覆蓋標籤欄。當我們轉向模態全屏轉換方法時,這個問題就解決了。