IOS swift 總結NavigationController出現問題及解決方法
最近用Swift語言做了一些iOS項目,頗有些心得,記下一些深刻的問題造福自己,服務大家
1.以NavigationController做為容器後狀態欄的字體顏色就會不在受系統的控制,要在NavigationController中的根ViewController中設置方可生效,代碼如下:
self.navigationController!.navigationBar.barStyle = UIBarStyle.Black
供選擇的有UIBarStyle.Black,UIBarStyle.Default,UIBarStyle.BlackOpaque,UIBarStyle.BlackTranslucent,具體選擇視項目需求而定
2.NavigationController做為容器後自帶的滑動返回效果失效問題
導致該問題的情況是在storyboard中push到下一個頁面後會自動生成一個navigationItem做為導航欄,當我們自己拖個按鈕到導航欄返回按鈕的位置,
並自定義了返回事件後,滑動返回效果就會失效
解決方法如下:
NavigationController的根ViewController繼承UIGestureRecognizerDelegate,viewDidLoad()中添加
self.navigationController!.interactivePopGestureRecognizer!.delegate = self
復寫方法gestureRecognizerShouldBegin()代碼如下:
func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool { if (self.navigationController!.viewControllers.count == 1){ return false }else{ return true } }
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!