由于app 个人中心 表头内容有纹理图片需要置顶 所以直接根视图隐藏了导航栏 子视图不隐藏导航栏。
问题1:
子视图返回根视图的时候导航栏右上角出现透明块问题。
解决方法
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:animated];
}
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:animated]
}
相信解决这个问题随便百度一下就很多答案。 主要说的是下面这个问题
问题2:
个人中心登录模态登录页面 或者登录完成 退出登录页面 个人中心的导航栏都会闪一下导航栏感觉很别扭。
出现这个问题是因为模态视图有导航栏 模态的时候导航栏从隐藏到显示 然后模态动画没这么快跟上导致的。
解决方法:
寻找解决方法使用了其他方法但是效果都不好 那就只能找源头了。
既然和模态有关那就找方法咯。 然后就找到这个属性 self.presentedViewController 模态相关这个属性不是nil
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:(self.presentedViewController)?NO:animated];
}
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
if (!self.presentedViewController) {
[self.navigationController setNavigationBarHidden:NO animated:animated];
}
}
- (void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
if (self.presentedViewController) {
[self.navigationController setNavigationBarHidden:NO];
}
}
通过上面的三个方法就解决了。
修改前后对比gif 。
网友评论