UINavigationController 的一些坑
2024-08-28 03:12:58
坑一:自定义导航栏返回键 iOS7及之后版本 手势边缘右滑返回失效
解决方案:
-(void)viewDidLoad{ [super viewDidLoad]; //self 为 UINavigationController 子类
self.interactivePopGestureRecognizer.delegate=(id)self; }
网上千篇一律都是该答案,确实加了这句话可以手势返回了,然而却又埋下了新的坑。
坑二:在UINavigationController的rootViewController触发手势边缘右滑,然后触发push方法界面卡死,必须重新边缘右滑后方可恢复,如下图所示
解决方案:
坑二的问题主要是由坑一埋下的,为何出现坑二的情况并不清楚,有知道的麻烦告知谢谢。
-(void)viewDidLoad{ [super viewDidLoad]; self.interactivePopGestureRecognizer.delegate=(id)self; //实现UINavigationControllerDelegate协议
self.delegate = self;
} //push完成 且界面显示完成时 这个是Delegate的方法
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
if (navigationController.viewControllers.count == ) { //如果是 rootViewController 禁止滑动手势
self.interactivePopGestureRecognizer.enabled = NO;
} else{
//如果不是 就启用 滑动手势
self.interactivePopGestureRecognizer.enabled = YES;
}
}
坑三:在视图Push过程中,且Push尚未完成时触发了Pop,可能会导致界面卡死,不响应任何手势,点击事件
解决方案:重写 push方法
- (void) pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{ self.interactivePopGestureRecognizer.enabled = NO; [super pushViewController:viewController animated:animated];
}
push时禁用了,push完就要开启,否则手势就无效了。开启方法同坑二,实现UINavigationControllerDelegate 方法
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated{ }
最新文章
- AtCoder Grand Contest 6
- hadoop2升级的那点事情(详解)
- hdu 1520 Anniversary party 基础树dp
- Sencha 基础Demo测试,三种showView的方法
- TFS统计编码行数语句
- 一个用C++写的Json解析与处理库
- centos-mysql 安装
- MySQL出现“错误1067:进程意外终止”
- [BZOJ1083] [SCOI2005] 繁忙的都市 (kruskal)
- JavaScript DOM详解
- Ubuntu Intel显卡驱动安装 (Ubuntu 14.04--Ubuntu 16.10 + Intel® Graphics Update Tool)
- cocos2dx spine之二 :spine变色
- 通过阻止 touchstart 事件,解决移动端的 BUG
- js中实现cookie的增删改查(document.cookie的使用详情)
- 学JS的心路历程 -数组常见处理方法
- 文件权限控制篇access alphasort chdir chmod chown chroot closedir fchdir fchmod fchown fstat ftruncate getcwd
- 图片后门捆绑利用工具 – FakeImageExploiter
- Kaggle : Display Advertising Challenge( ctr 预估 )
- 象棋AI算法(一)
- 架构实战项目心得(十四):spring-boot结合Swagger2构建RESTful API测试体系