統一設置導航欄

1.設置導航欄的屬性

2.統一不要在根控制器上設置返回鍵


3.統一設置全屏滑動效果

首先我會考慮到手勢影響了默認只能在邊緣滑動,所以打印Nav中的手勢,得到

<UIScreenEdgePanGestureRecognizer: 0x7fdcb2f3ef10; state = Possible; delaysTouchesBegan = YES; view = <UILayoutContainerView 0x7fdcb2e10d00>;

target= <(action=handleNavigationTransition:,

target=<_UINavigationInteractiveTransition 0x7fdcb2f3e980>)>>


條件反射,我會先觀察UIScreenEdgePanGestureRecognizer中的屬性發現了

edges,我會先設置edgs爲UIRectEdgeNone,這樣沒有邊緣不就可以全屏幕滑動了嗎?事實上我錯了,沒有效果。

這時候就考慮加pan手勢用self.interactivePopGestureRecognizer.delegate去調用系統手勢的handleNavigationTransition方法


最後要在<UIGestureRecognizerDelegate>中的一個協議方法裏判斷是否觸發這個手勢



這樣就可以全屏滑動啦,有沒有疑問爲什麼2.中的判斷子控制器>0,而上面判斷子控制器>1,解釋一下,因爲2.中的判斷是在所有控制器push之前做的判斷,上面的判斷是在push了一次之後做的判斷。


發佈了42 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章