今天在工作中发现一个坑, 其他页面都是隐藏。YSViewController 使用的时候必须是需要 navigationBar 和 toorbar,但是 pop出这个viewcontroller后,需要隐藏navigationBar 和 toorbar,但是直接设置为hidden=YES会出现其他页面压栈出现问题。
toolbar.hidden=YES 会导致后期压栈出栈的界面出现异常。

    //self.navigationController.navigationBarHidden=YES;  [self.navigationController setNavigationBarHidden:YES animated:YES];  //self.navigationController.toolbar.hidden=YES;  [self.navigationController setToolbarHidden:YES  animated:YES];  [self.navigationController popViewControllerAnimated:YES];

同样下面一种情况类似:

- (void)viewWillAppear:(BOOL)animated
{[super viewWillAppear:animated];self.navigationController.navigationBarHidden = YES;
}- (void)viewWillDisappear:(BOOL)animated
{[super viewWillDisappear:animated];self.navigationController.navigationBarHidden = NO;
}

这样写导致的结果就是当你右滑返回一部分,再回来点击push到下一个页面,导航栏会混乱,本来该显示下一个页面的标题,结果变成了上一个页面的标题,如果你在这个页面进行其他的操作很可能导致崩溃,因为系统还以为是在上一个页面。
正确的写法应该是下面这样。

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

navigationController的NavigationBar和ToolBar的POP或PUSH消失问题相关推荐

  1. C++ push_back()和back() 、pop()、push()、emplace() 和 emplace_back()

    1 push_back()和back() 2 push_back()和pop_back( ) 3 push()和pop() 4 emplace() 和 emplace_back() 1 push_ba ...

  2. c++之vector以及deque的一些思考,以及pop与push的具体实现

    今天在分析threadsafe_stack代码时发现自己对pop和push的具体实现原理以及注意事项还是有点疏漏,然后撸了一遍相关标准库代码,记录一下. 先说结论: pop与erase只是移动指针,不 ...

  3. JavaScript数组函数unshift、shift、pop、push使用实例

    一.unshift 在数组第一个元素前插入元素 // 使用unshift在数组第一个元素前插入元素 // 返回数组长度 var tmp = ['a','b']; var len = tmp.unshi ...

  4. navigationController中navigationBar 的设置

    摘自社会成员的cnblog,原文链接如下:http://www.cnblogs.com/lsck/archive/2012/05/19/2508878.html 感谢分享 3.设置标题: 打开View ...

  5. navigationcontroller的navigationBar

    在修改navigationController.navigationBar.barTintColor时,会发现和内容设置的颜色值一样但效果不一样的情况.因为navigationBar默认是半透明的.添 ...

  6. navigationcontroller和navigationbar和navigationitem之间的区别以及不用nib实现点击屏幕关闭虚拟键盘20130911...

    1.UIViewController UIView的关系. UIView是视图,UIViewController是视图控制器,两者之间是从属关系,当创建一个UIViewController的时候,一般 ...

  7. 实现先pop后push的效果,如支付成功后的界面

    let new = WebViewController()let vcArr = NSMutableArray.init(array: (self.navigationController?.view ...

  8. Stack:peek、pop、push、search

    Java Stack 类 栈是Vector的一个子类,它实现了一个标准的后进先出的栈. 堆栈只定义了默认构造函数,用来创建一个空栈. 堆栈除了包括由Vector定义的所有方法,也定义了自己的一些方法. ...

  9. perl pop和push函数,不使用索引更能利用perl的特性,减少边界值错误发生的几率...

    Perl_Pop和Push操作 2009年09月24日 星期四 10:41 A.M. 可以使用新的,更大的索引(index)将新值存放在数组的末尾.但实际上,Perl 程序员不使用索引 因此,在下面几 ...

最新文章

  1. 透视宇宙:大约138亿年前,宇宙真的发生过大爆炸吗?
  2. 走向DBA[MSSQL篇] 从SQL语句的角度 提高数据库的访问性能
  3. c# 审批流引擎_小熊OA:流程引擎才能真正起到管理价值!
  4. 继爱奇艺之后,腾讯视频、优酷宣布:取消剧集超前点播服务
  5. Git学习总结(11)——Git撤销操作详解
  6. delete函数的动态解析
  7. Hive:动静态分区
  8. PHP一个文件内多个php代码段的写法
  9. 钓鱼网站 (搬运自common craft )
  10. 变分模态分解(VMD)前言
  11. Java Web开发学习手册_Java Web实战开发完全学习手册
  12. dht 爬虫 java_[C#搜片神器] 之P2P中DHT网络爬虫原理
  13. Linux恢复数据软件,Linux数据恢复工具推荐
  14. c语言程序设计流程图案例
  15. 黑轴、青轴、茶轴、红轴、白轴的区别
  16. 【OpenCV 例程200篇】20. 图像的按位运算(cv2.bitwise)
  17. CodeForces 1463 C. Busy Robot 模拟
  18. 堆垛机器人编程技巧_两步变身老鸟,手把手教你提升ABB机器人编程技巧!(二)...
  19. arm裸机程序启动流程
  20. 【Xshell】设置默认登录用户

热门文章

  1. C++--浅谈开发系统的经验
  2. Apache Tika:通用的内容分析工具
  3. 线程安全存储以及pthread_getspecific/pthread_setspecific
  4. Spring Security-- 验证码功能的实现
  5. Ubuntu下使用pjsip点对点通话
  6. 顺丰负债300亿就压力山大,而万达曾经负债4000亿却稳如泰山
  7. 数据库设计笔记——概述(一)
  8. 贷款不还会有什么后果?
  9. 在FSM模型中使用两态数据类型
  10. 不是有效的win32应用程序_杀毒软件有坑!三分之二的安卓杀毒软件的“主业”并不是杀毒...