前提条件,存在A和B两个页面,A是主界面,A push 到 B
创新互联长期为近千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为南皮企业提供专业的网站建设、做网站,南皮网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
方法一:如果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 右滑返回操作的两种方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对创新互联网站的支持!
当前名称:iOSapp右滑返回操作的两种方法
浏览路径:/article8/ijcsip.html
成都网站建设公司_创新互联,为您提供企业建站、网站设计公司、域名注册、网站排名、服务器托管、App设计
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联