NavigationItem.leftBarButtonItem 返回事件捕获
这个事件的捕获,在网上找了好久也没找到合适的方法,最后想了一些替代方法,供有需要的朋友借鉴。
1.把重新生成一个返回按钮,自己定义响应事件。
UIImage *image=[UIImage imageNamed:@"ReturnHome_Dark"];
UIBarButtonItem* backButton=[[UIBarButtonItem alloc] initWithImage:image landscapeImagePhone:image style:UIBarButtonItemStylePlain target:self action:@selector(doBack:)];
self.navigationItem.leftBarButtonItem= backButton;
UIImage* img=[UIImage imageNamed:@"ReturnHome_Dark"];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame =CGRectMake(0, 0, 20, 20);
[btn setBackgroundImage:img forState:UIControlStateNormal];
[btn addTarget: self action: @selector(doBack:) forControlEvents: UIControlEventTouchUpInside];
UIBarButtonItem* item=[[UIBarButtonItem alloc]initWithCustomView:btn];
self.navigationItem.leftBarButtonItem=item;
2.在导航器上放一个透明的按钮,自己定义响应事件。
由于第一种,不能无缝的实现原生态效果,想到了第二种。
UIButton * btn=[[UIButton alloc] initWithFrame:CGRectMake(0, 0, 100, 44)];
[btn addTarget:self action:@selector(doBack:) forControlEvents:UIControlEventTouchUpInside];
[btn setBackgroundColor:[UIColor clearColor]];
[self.navigationController.navigationBar addSubview:btn];