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
複寫方法gestureRecognizerShouldBegin()程式碼如下:
func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
if (self.navigationController!.viewControllers.count == 1){
return false
}else{
return true
}
}