首先是navigationcontroller的结构图。可以有n多个子控制器,每一个子控制器都包含一个默认的navigationitem,navigationitem中又包括了常用到的title,backbarbuttonitem,left和right barbuttonitem,titleview

//隐藏navigationbar的方法

self.navigationController?.hidesBarsOnTap = true //动态点击隐藏和展示

self.navigationController?.hidesBarsOnSwipe = true //动态滑动隐藏和展示,还比如tableview等滑动的时候

self.navigationController?.hidesBarsWhenVerticallyCompact = true //当屏幕发生横向旋转的时候动态隐藏掉导航栏

self.navigationController?.hidesBarsWhenKeyboardAppears = true //当键盘弹出时动态隐藏掉导航栏

self.navigationController?.hidesBottomBarWhenPushed = true //当视图被push(就是nav的push)完之后是否隐藏底层的bar,YES表示隐藏,NO表示不隐藏。

self.navigationController?.isNavigationBarHidden // 判断是否navigationbar已经被隐藏了

//隐藏navigationbar的手势回调方法单击

lazy var barHideOnTap = self.navigationController?.barHideOnTapGestureRecognizer

//隐藏navigationbar的手势回调方法滑动

lazy var barHideOnSwipe = self.navigationController?.barHideOnSwipeGestureRecognizer

barHideOnTap?.addTarget(self, action: #selector(onTapGestureRecognizerSelect(gender:)))

barHideOnSwipe?.addTarget(self, action: #selector(onSwipeGestureRecognizerSelect(gender:)))

@objc func onSwipeGestureRecognizerSelect(gender: UISwipeGestureRecognizer) {

//isNavigationBarHidden 判断navigationbar是否被隐藏了

if self.navigationController?.isNavigationBarHidden == true {

print("navigation bar 被隐藏了")

} else {

print("navigation bar 显示了")

}

}

@objc func onTapGestureRecognizerSelect(gender: UITapGestureRecognizer) {

//isNavigationBarHidden 判断navigationbar是否被隐藏了

if self.navigationController?.isNavigationBarHidden == true {

print("navigation bar 被隐藏了")

} else {

print("navigation bar 显示了")

}

}

lazy var topViewController = self.navigationController?.topViewController

//当前可见的viewcontroller

lazy var visibleViewController = self.navigationController?.visibleViewController

//当前在栈中存在的所有view controller

lazy var viewControllers = self.navigationController?.viewControllers

NavigationController 常用方法归总相关推荐

  1. 30 个 php 操作 redis 常用方法代码例子

    这篇文章主要介绍了 30 个 php 操作 redis 常用方法代码例子 , 本文其实不止 30 个方法 , 可以操作 string 类 型. list 类型和 set 类型的数据 , 需要的朋友可以 ...

  2. SearchRequestBuilder常用方法说明

    SearchRequestBuilder常用方法说明 (1) setIndices(String... indices):上文中描述过,参数可为一个或多个字符串,表示要进行检索的index:(2) s ...

  3. 3-RACSignal 常用方法

    RACSingal的常用方法 一 基本使用 1map // 0 创建信号提供者// RACSubject,既能发送信号,又能订阅信号// 多用于代理,相当于OC里的delegate或者回调blockR ...

  4. self.navigationController push到指定控制器

    1 返回到当前页面上面第三级控制器int idx = (int)[[self.navigationController viewControllers]indexOfObject:self]; [se ...

  5. AJAX 一些常用方法

    AJAX 一些常用方法 abort() 停止当前请求 getAllResponseHeaders() 返回包含HTTP请求的所有响应头信息,其中响应头包括Content-Length,Date,URI ...

  6. iOS-UIViewController视图控制器跳转界面的几种常用方法

    一.最普通的视图控制器UIViewContoller 一个普通的视图控制器一般只有模态跳转的功能(ipad我不了解除外,这里只说iPhone),这个方法是所有视图控制器对象都可以用的,而实现这种功能, ...

  7. OC基础第四讲--字符串、数组、字典、集合的常用方法

    OC基础第四讲--字符串.数组.字典.集合的常用方法 字符串.数组.字典.集合有可变和不可变之分.以字符串为例,不可变字符串本身值不能改变,必须要用相应类型来接收返回值:而可变字符串调用相应地方法后, ...

  8. vue——props的两种常用方法

    vue--props的两种常用方法 1.实现父-->子的通信 举例如下: 父组件 parent.vue <children :channel="object1"> ...

  9. C#中静态方法的运用和字符串的常用方法(seventh day)

    又来到了今天的总结时间,由于昨天在云和学院学的知识没有弄懂,今天老师又专门给我们非常详细地讲了一遍,在这里非常谢谢老师.O(∩_∩)O 话不多说,下面就开始为大家总结一下静态方法的运用和字符串的常用方 ...

最新文章

  1. YARN集群维护部分问题汇总
  2. 原 Ubuntu使用VNC运行基于Docker的桌面系统
  3. Android实战——第三方服务之Bmob后端云的推送服务的集成和使用(三)
  4. ssl初一组周六模拟赛【2018.3.10】
  5. rpc 服务器不可用_RPC和微服务
  6. highscore软件_软件|标准物质PDF卡片查找HighScore
  7. 实战系列-Java中线程安全集合类(二)
  8. @程序员,别再让 Hotplug 问题难住你!
  9. 页面制作(PS/HTML/CSS)易错点总结
  10. 用C语言写一个查单词的小demo
  11. java进制转换工具(图形界面版)
  12. 组合数学之二 —— 容斥原理及应用
  13. 怎样将PDF转成EXCEL
  14. ecshop 匿名购买 买家可以自由选择是否匿名购买,仿淘宝匿名购买
  15. 相约2023 | 第 20 期高级转录组分析和R数据可视化火热报名中!!!
  16. python word保存图_python实现word内图片的提取
  17. 2C4T与4C4T在计算密集型任务下的效率对比
  18. dlink交换机(DLINK交换机灯)
  19. intel历代架构演进6—— SIMD指令集
  20. idea import javafx.util.Pair 异常原因

热门文章

  1. 心蓝android版本,心蓝抢票app-心蓝抢票软件预约 _5577安卓网
  2. C语言关于qsort函数的用法详细说明
  3. 车牌识别EasyPR(3)——SVM模型判断车牌
  4. 如何搭建一个属于自己的直播平台?
  5. 用一个小故事模拟Spring-Aop(三)--Advice适配器
  6. PXE系列之四:PXE无盘LINUX工作站
  7. itss认证条件是什么?
  8. python: reverse reversed 函数
  9. Git如何获取帮助(命令解释/命令详情)?
  10. Solidity学习(一)