国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Swift > 正文

Swift NavigationBar隱藏后的右滑手勢效果

2020-03-09 17:44:42
字體:
來源:轉載
供稿:網友

需求

我們在開發中經常遇見這樣的需求,就是A視圖沒有導航,pushB視圖后導航欄。然后要求可以使用iOS的系統側滑返回功能。類似如下的功能:

Swift,NavigationBar,右滑手勢

問題

在處理這個需求的時候,我們一般會遇到兩個問題:

右滑返回手勢

ios開發中,使用push視圖,系統是有默認的側滑返回上個視圖的功能。但是當我們自定義導航欄時,這個手勢的事件就沒有再觸發,此時只要我們重新將代理設置為controller即可。

代碼示例:

在BaseViewController中添加如下的代碼

 //開啟 push視圖 右滑手勢()  fileprivate func openSwipe(){  if(self.navigationController != nil){    self.navigationController!.interactivePopGestureRecognizer!.delegate = self;  }  }  func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {    if self.navigationController?.viewControllers.count == 1{      return false;    }    return true;  }

或者在BaseNavigationController中添加如下代碼:

extension BaseNavigationController:UIGestureRecognizerDelegate{  override func viewDidLoad() {    super.viewDidLoad()    self.interactivePopGestureRecognizer?.delegate = self  }  func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {    if self.navigationController?.viewControllers.count == 1{      return false;    }    return true;  }}

右劃返回時導航欄的隱藏問題

oc代碼:

-(void)viewWillAppear:(BOOL)animated{    [self.navigationController setNavigationBarHidden:YES animated:true];}-(void)viewWillDisappear:(BOOL)animated{ [self.navigationController setNavigationBarHidden:NO animated:false];}

Swift代碼:

 override func viewWillAppear(_ animated: Bool) {    super.viewWillAppear(false);    self.navigationController?.setNavigationBarHidden(true, animated: true)  }  override func viewWillDisappear(_ animated: Bool) {    super.viewWillDisappear(animated);    self.navigationController?.navigationBar.isHidden = false;  }

注意點

我們隱藏導航欄的時候,務必使用animated為true.這樣在右劃返回視圖的時候才不會突兀,否則則會是下面的效果。剛開始滑動,導航欄就全不見了。

Swift,NavigationBar,右滑手勢

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东兰县| 太仓市| 株洲县| 涡阳县| 瓦房店市| 华安县| 苏尼特右旗| 吴旗县| 民丰县| 章丘市| 通江县| 北票市| 新邵县| 衡南县| 蓝田县| 闽侯县| 永善县| 晋中市| 闽侯县| 梨树县| 桐城市| 寿光市| 乳山市| 红安县| 博客| 许昌县| 丰原市| 盐源县| 天长市| 永仁县| 上杭县| 门源| 潍坊市| 千阳县| 丘北县| 贡嘎县| 高密市| 沾益县| 栖霞市| 赤城县| 武安市|