iOS7之后经过滑动返回导航栏隐藏和显示带来的坑
来源:互联网 发布:cad网络培训班 编辑:程序博客网 时间:2024/06/06 08:52
iOS7之后经过滑动返回导航栏隐藏和显示带来的坑
接下来讲下滑动返回处理导航栏的显示和隐藏如果开发者不好好理解这块(动画效果),很容易给项目带来非常不好的体验.
比如:利用系统的UINavigationBar时,返回手势重若碰到前一个页面有bar,后一个页面没bar,或者反过来时动画非常难看,要解决此问题需要在滑动返回的后要出现的viewController中写下面的代码:
//隐藏
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:animated];
//很多同学习惯这样写
[self.navigationController setNavigationBarHidden:YES animated:YES];//带动画结果在切换tabBar的时候viewController会有闪动的效果不建议这样写
}
//显示
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:animated];
}
为啥会这样呢,我猜应该是UINavigationController 在导航栏控制API上设计的缺陷,一个UINavigationController管理了N个UIViewController栈式的push和pop,而UINavigationBar 有UINavigationController管理.这就导致了UIViewConstroller无法控制自己上面bar单独隐藏和显示,非常类似UIApplication全局的status bar,不过在iOS7之后为viewController控制自己的status bar 提供下面的几个方法:
-(BOOL)prefersStatusBarHidden;
-(UIStatusBarStyle)preferredStatusBarStyle;
-(UIStatusBarAnimation)preferredStatusBarUpdateAnimation;
- iOS7之后经过滑动返回导航栏隐藏和显示带来的坑
- iOS7【隐藏导航栏返回键的Title】
- 导航栏滑动显示隐藏
- 导航栏显示和隐藏的坑
- 隐藏navigationBar之后滑动返回的问题
- iOS 关于滑动返回隐藏导航栏的问题
- IOS7之后的导航栏遮盖问题
- iOS7之后的导航栏遮盖问题
- ios7之后导航栏的问题1
- ios7之后导航栏的问题2
- 滑动UIScrollView隐藏或显示导航栏
- UINavigationController导航栏的隐藏和显示
- 导航栏的平滑显示和隐藏
- 导航栏隐藏跳转返回的坑
- 右滑返回与导航栏的显示隐藏优化
- iOS7和iOS6适配--状态条+模态视图的时候,导航隐藏,状态显示
- 导航栏显示和隐藏
- ios导航栏的使用和滑动返回
- EventBus 3.0初探: 入门使用及其使用 完全解析
- Unity ulua/tolua slua调试教程
- 疯狂了!当游戏爱上MongoDB会怎么样???
- linux下的查找文件的命令
- 形式参数是类名
- iOS7之后经过滑动返回导航栏隐藏和显示带来的坑
- 掌握 Linux PC 性能之基准测试
- 匿名问题
- python 时间模块: datetime
- 程序11-先升序后降序返回最大值
- 封装和private关键字
- 源码-数据库调优(tuning)初接触
- 1-1 C++ learning
- 你可能不清楚的Java细节(2)--for及for-each各自循环适用的场景