当前位置: 移动技术网 > IT编程>移动开发>IOS > iOS app 右滑返回操作的两种方法

iOS app 右滑返回操作的两种方法

2019年07月24日  | 移动技术网IT编程  | 我要评论

新疆旅游,开讲啦 毕业季,卯时十分空腹杯

前提条件,存在a和b两个页面,a是主界面,a push 到 b

方法一:如果b页面的返回按钮要用自定义的按钮(在ios7中,如果使用了uinavigationcontroller,那么系统自带的附加了一个从屏幕左边缘开始滑动可以实现pop的手势。但是,如果自定义了navigationitem的leftbarbuttonitem,那么这个手势就会失效。)

在a界面:

- (void)viewdidappear:(bool)animated {
self.navigationcontroller.interactivepopgesturerecognizer.delegate = (id)self;//重新设置代理
self.navigationcontroller.interactivepopgesturerecognizer.enabled = no;//本页面不能右滑
}

在b里面:

设置返回按钮:

uibutton *backbtn = [uibutton buttonwithtype:uibuttontypecustom];
backbtn.frame = cgrectmake(5, 2, 21, 35);
[backbtn setimage:[uiimage imagenamed:@"back"] forstate:uicontrolstatenormal];
[[backbtn rac_signalforcontrolevents:uicontroleventtouchupinside] subscribenext:^(id x) {
[self.navigationcontroller popviewcontrolleranimated:yes];
}];
uibarbuttonitem *backitem = [[uibarbuttonitem alloc] initwithcustomview:backbtn];
self.navigationitem.leftbarbuttonitem = backitem;
self.navigationcontroller.interactivepopgesturerecognizer.enabled = yes;//最重要的一步

方法二:在a页面里面(a页面里面的backbarbuttonitem其实就是我们看到的b页面的返回按钮,b页面的leftbar是左侧的按钮,注意优先级,b里面有自定义leftbar,显示b页面的,如果没有,看a界面,如果里面有backbarbuttonitem,显示,如果没有,就是系统默认的那个)

uiimage* image = [uiimage imagenamed:@"back"];
uibarbuttonitem *item = [[uibarbuttonitem alloc] init];
[item setbackbuttonbackgroundimage:[image resizableimagewithcapinsets:uiedgeinsetsmake(0, image.size.width, 0, 0)] forstate:uicontrolstatenormal barmetrics:uibarmetricsdefault];
[item setbackbuttontitlepositionadjustment:uioffsetmake(-400.f, 0) forbarmetrics:uibarmetricsdefault];
self.navigationitem.backbarbuttonitem = item;
self.navigationitem.backbarbuttonitem = item;

我采用的是方法一,方法二我没有办法调整返回按钮的位置

总结

以上所述是小编给大家介绍的ios app 右滑返回操作的两种方法,希望对大家有所帮助

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网