使用苹果手机,最喜欢的就是用它的滑动返回。作为一个开发者,我们在编写很多页面的时候,总是会因为这样那样的原因使得系统的滑动返回不可用。使用导航栏将出一个控制器,我们在控制器中自定义了一个返回按钮。这样系统默认的滑动返回手势效果就没有了。
[1]从这一个控制器推到B这个控制器,我们想要自定义B的返回按钮,我们可以在一个中设置
self.navigationItem。backBarButtonItem=[[UIBarButtonItem alloc] initWithTitle: @“王俨”风格:UIBarButtonItemStylePlain目标:零行动:nil);>之前[2]在B控制器设置返回按钮,我想这应该是大多数人喜欢的选择,可是当我们在B控制器中设置self.navigationItem.leftBarButtonItem后发现系统的滑动返回手势失效了。那么如何可以保留系统的滑动返回手势了,我们可以B控制器中这样做。
@ interface ViewController () @end@implementation ViewController - (void) viewDidLoad { (超级viewDidLoad);//自定义返回按钮 UIButton *按钮=[[UIButton alloc] initWithFrame: CGRectMake(0, 0, 44岁的44)]; (按钮setTitle: @”王俨2”forState: UIControlStateNormal); [按钮setTitleColor:[用户界面颜色blackColor] forState: UIControlStateNormal); 【按钮addTarget:自我行动:@ selector (:) forControlEvents: UIControlEventTouchUpInside);self.navigationItem。leftBarButtonItem=[[UIBarButtonItem alloc] initWithCustomView按钮):; } - (void): {(UIButton *)按钮 (自我。实现通过调用popViewControllerAnimated导航控制器:是的); } - (void)那些:(BOOL)动画{ (超级那些:动画);如果(self.navigationController.viewControllers。数比;1){//记录系统返回手势的代理 _delegate=self.navigationController.interactivePopGestureRecognizer.delegate;//设置系统返回手势的代理为当前控制器 self.navigationController.interactivePopGestureRecognizer.delegate=自我; } } - (void) viewWillDisappear: (BOOL)动画{ (超级viewWillDisappear:动画);//设置系统返回手势的代理为我们刚进入控制器的时候记录的系统的返回手势代理 self.navigationController.interactivePopGestureRecognizer.delegate=_delegate; }# pragma马克- UIGestureRecognizerDelegate (BOOL) gestureRecognizerShouldBegin: UIGestureRecognizer(*)手势识别器{self.navigationController.childViewControllers返回。数比;1; } UIGestureRecognizer (BOOL)手势识别器:(*)手势识别器shouldRecognizeSimultaneouslyWithGestureRecognizer: UIGestureRecognizer (*) otherGestureRecognizer {self.navigationController.viewControllers返回。数比;1; }@end以上所述是小编给大家介绍的iOS自定义返回按钮保留系统滑动返回功能,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
iOS自定义返回按钮保留系统滑动返回功能