我想啓用iOS7刷卡備份功能,以自定義導航的後退按鈕項。
實施現狀:
研究了很多之後,我發現下面的解決方案是最好的:
將手勢識別的代表如下
self.navigationController.interactivePopGestureRecognizer.delegate = (id<UIGestureRecognizerDelegate>)self;
- 這造成了這個stackoverflow answer中提到的很多錯誤。爲了避免這種情況,UINavigationController的子類似乎是唯一可行的選擇。我在blog之前通過Keighl這樣做過。
問題:
基本刷卡備份功能工作正常,但奇怪的是,有時,正在被駁回了相同viewController
,再次完成了流行的動作後出現。
即假設導航堆棧看起來像A→B。 Popping B將再次調出B。這種情況持續發生,直到最終viewController實際上被取消並且A出現。
這發生在所有viewController對象中的所有視圖,而不僅僅是特定的視圖。 此外,我確保push
方法在所有地方只被調用一次。
我也嘗試在每個點記錄導航堆棧,但每個viewController
只有一個實例。
注意點:
我需要禁用某些觀點的刷卡功能。我通過將代碼分別寫入disable
和enable
,分別在viewDidAppear
和viewDidDisappear
中執行了刷卡操作。
請提供您寶貴的建議或解決此問題的方法。謝謝!
難道答案實際上適合你? – SwiftArchitect
之後沒有嘗試過。但是現在,我認爲使用View Controller Transitioning API可以實現同樣的效果。 – GoGreen