這是我的情況:以模態方式在導航堆棧中呈現視圖控制器
我有兩個視圖控制器嵌入在導航控制器中。我會叫他們發件人和目的地
基本上我想要實現的是用導航堆棧中的目標「替換」發件人,以便按發件人上的按鈕繼續前往目的地但按「 <返回「按鈕導航欄中的發件人和目的地將導致相同的視圖控制器。
問題出在這裏:我希望這兩個視圖控制器之間的轉換是水平翻轉,所以我創建了一個連接發送者和目的地的種類「Present Modally」,轉換爲「Flip Horizontal」。 在發件人中,我選擇「定義上下文」選項。
現在,對於連接SEGUE:
- 當我選擇「在當前語境下」爲展示它正是我想要的! ...除了動畫看起來有點won。。基本上,發送者保持平坦和靜止,而目的地在其上方翻轉,而不是「一起」翻轉。這是有道理的,因爲segue提供而不是發件人,但它不是我想要的。
- 當我選擇「當前上下文」進行演示時,動畫看起來很棒! ...除了在導航欄中按下「<返回」按鈕,它只是導致帶有導航欄的純黑色視圖,如果我在此視圖上再次按下「<返回」按鈕,我會看到以下異常:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't add self as subview'
任何人都有任何想法,我怎麼能實現我想要做的?這甚至是正確的方法嗎? 我見過一些建議,嘗試將視圖控制器視圖翻轉到新視圖,而不是將整個視圖控制器翻轉到不同的視圖控制器。但是故事板中的一個視圖控制器可以有兩個「全尺寸」視圖嗎?
謝謝!
嗯所以如何更換行動工作?我仍然會使用類似的水平翻轉賽?如果是這樣,我不會像以前一樣遇到同樣的問題,只是在這種情況下,它會在CVC而不是發件人VC? – user3029918
不,你不會使用segue ...看看:https://developer.apple.com/reference/uikit/uiview/1622574-transition – DonMag
如果你仍然在爲此工作,我把在https://github.com/DonMag/ContainerViewExample – DonMag