在iOS 7中,有了新的滑动弹出手势:你在屏幕左侧从左向右滑动,UINavigationController就会弹回之前的UIViewController。
当我创建一个像这样的自定义后退按钮时,滑动到弹出手势不再起作用:
UIBarButtonItem *customBackButton = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStyleBordered target:self action:@selector(navigateBack)];
[customBackButton setBackButtonBackgroundImage:barBackBtnImg forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[customBackButton setBackButtonBackgroundImage:barBackBtnImgHighlighted forBarMetrics:UIBarMetricsDefault];
self.navigationItem.backBarButtonItem = customBackButton;
如何使用自定义的后退按钮并使用本机滑动以弹出手势?
更新:
这就是在navigateBack中发生的事情
- (void)navigateBack {
[self.navigationController popViewControllerAnimated:YES];
}
发布于 2013-09-18 23:16:15
只需添加以下代码行:
[self.navigationController.interactivePopGestureRecognizer addTarget:self action:@selector(handleGesture:)];
您可以添加自己的UIGestureRecognizer并自己弹出UIViewController。有关详细信息,请参阅docs。
发布于 2013-10-11 15:12:20
不需要添加自己的手势识别器。UINavigationController已经为您做到了这一点。您需要在启用interactivePopGestureRecognizer之前为其设置委派。
执行以下两项操作:
self.navigationController.interactivePopGestureRecognizer.delegate = (id<UIGestureRecognizerDelegate>)self;
[self.navigationController.interactivePopGestureRecognizer setEnabled:YES];
发布于 2013-11-05 16:13:22
我使用
[[UINavigationBar appearance] setBackIndicatorImage:[UIImage imageNamed:@"nav_back.png"]];
[[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:[UIImage imageNamed:@"nav_back.png"]];
[UIBarButtonItem.appearance setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -64) forBarMetrics:UIBarMetricsDefault];
https://stackoverflow.com/questions/18876102
复制相似问题