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];
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-13 09:32:37