iOS app 右滑返回操作的两种方法
前提条件,存在A和B两个页面,A是主界面,Apush到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=[UIButtonbuttonWithType:UIButtonTypeCustom]; backBtn.frame=CGRectMake(5,2,21,35); [backBtnsetImage:[UIImageimageNamed:@"back"]forState:UIControlStateNormal]; [[backBtnrac_signalForControlEvents:UIControlEventTouchUpInside]subscribeNext:^(idx){ [self.navigationControllerpopViewControllerAnimated:YES]; }]; UIBarButtonItem*backItem=[[UIBarButtonItemalloc]initWithCustomView:backBtn]; self.navigationItem.leftBarButtonItem=backItem; self.navigationController.interactivePopGestureRecognizer.enabled=YES;//最重要的一步
方法二:在A页面里面(A页面里面的backBarButtonItem其实就是我们看到的B页面的返回按钮,B页面的leftBar是左侧的按钮,注意优先级,B里面有自定义leftBar,显示B页面的,如果没有,看A界面,如果里面有backBarButtonItem,显示,如果没有,就是系统默认的那个)
UIImage*image=[UIImageimageNamed:@"back"]; UIBarButtonItem*item=[[UIBarButtonItemalloc]init]; [itemsetBackButtonBackgroundImage:[imageresizableImageWithCapInsets:UIEdgeInsetsMake(0,image.size.width,0,0)]forState:UIControlStateNormalbarMetrics:UIBarMetricsDefault]; [itemsetBackButtonTitlePositionAdjustment:UIOffsetMake(-400.f,0)forBarMetrics:UIBarMetricsDefault]; self.navigationItem.backBarButtonItem=item; self.navigationItem.backBarButtonItem=item;
我采用的是方法一,方法二我没有办法调整返回按钮的位置
总结
以上所述是小编给大家介绍的iOSapp右滑返回操作的两种方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!