2017-09-29 42 views
0

從Xcode 8更新到Xcode 9後,我只在運行iOS 11的設備上注意到了這個非常奇怪的行爲。Xcode 9從iOS 11的左側菜單中導航導航欄問題不在iOS 10.3和以下

從您展示一個默認的演示模式地選擇菜單控制我的左邊菜單導航後,該錯誤會出現(也就是全屏幕)

我已經張貼在這裏的視頻:https://youtu.be/mgjlbkMi-N8

它似乎是Xcode 9上編譯的一個bug。

也嘗試使用iOS 11的真實設備iPad Pro。 使用Xcode 8.3.3編譯的相同代碼按預期工作,而使用Xcode 9編譯則暴露了此問題。

我已經把操場代碼在這裏:https://github.com/shadowsheep1/xcode9navigationissue

已經有了一個解決方法:將演示文稿在全屏。

但這沒有意義,這不是exptected操作。

一旦導航欄損壞,該應用程序中的每個導航控制器都會中斷。

有什麼想法?

編輯:

蘋果開發者關係2018年1月23日,下午11點13分

沒有計劃 解決這一基於以下幾點:

你是創建一個分離的演示文稿,導致多個導航欄被放置在視圖層次結構中。看到的導航欄 不是正在發生推送的那個,因此顯示的錯誤爲 。我不知道爲什麼在iOS 10上沒有發生這種情況,但它也是 的一個無效配置。

我們建議您使用一個合適的視圖控制器容器來實現這個菜單,而不是似乎要做的事情(將 IS_SlideMenu_View直接放在窗口中)。

+0

任何模式呈現導航控制器有同樣的問題 – akaDuality

+0

@akaDuality我已經張貼在這裏的錯誤和https://bugreport.apple.com到目前爲止還在編譯Xcode 8.3。3 – shadowsheep

+0

@akaDuality您是否以編程方式或通過界面生成器中的繼續模式呈現您的視圖? – shadowsheep

回答

1

我與常規UIModalTransitionStyleCoverVertical有同樣的問題。

我已經通過設置UIModalPresentationOverFullScreenUIModalPresentationOverCurrentContext解決了問題。

可能它也可以幫助你。

實例導航是有模式呈現:

if (@available(iOS 11.0, *)) { 
    navController.modalPresentationStyle = UIModalPresentationOverFullScreen; 
} 
+0

這是我在問題中提出的解決方法,但我不明白的是,這是否是正確的選擇,因爲Apple改變了這種行爲,或者如果這是用編程方式以默認演示文稿呈現模態視圖時的真實缺陷。我想這是最後一個場景。無論如何,如果你設置了OverFullScreen,你會看到不同的UI外觀,因爲下劃線視圖並沒有被破壞。 – shadowsheep

+0

哎呀,我在閱讀過程中沒有看到它。你是對的,這種行爲非常令人沮喪 – akaDuality