隱藏返回按鈕
當是某個界面被push進來的時候,其導航欄左側會自動顯示返回按鈕。
備注:項目中對于pop手勢的擴展使用的是FDFullscreenPopGesture分類。
一般會想到如下三種解決辦法
方法一
self.navigationItem.leftBarButtonItem = nil;
但是方法一并不能隱藏返回按鈕。
方法二
self.navigationItem.hidesBackButton = YES;
能隱藏但是存在問題:當你進行pop手勢但又不退出界面時,被我們隱藏的返回按鈕會重新顯示出來,而且顯示不完全。
Snip20170810_10.png
顯示三個點的控件信息如下,其實就是返回按鈕:
Snip20170810_11.png
方法三
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:[[UIView alloc] initWithFrame:CGRectZero]];
這是最好的解決方法,即用一個視圖創建leftBarButtonItem,可以是一個frame為CGRectZero或者自定義樣式的視圖。
關于界面消失鍵盤的回收問題
如果某個界面通過監聽鍵盤的顯示和隱藏來控制UISCrollView的frame,當你通過pop手勢又不完全退出界面時(并沒有回收鍵盤),可能會引發UI上面的bug。也就是整個UISCrollView像右偏移而且其寬度會突變,就像這樣的:
IMG_0538.PNG
IMG_0539.PNG
在這個過程中打印UISCrollView的frame如下:
Snip20170810_12.png
不過我自己單獨測試似乎沒有遇到上面的問題,只是大家可以注意下這個點,即進行pop手勢時是否需要回收鍵盤。