Ios 自定义背面UIBarButton,标题与原件相同?

Ios 自定义背面UIBarButton,标题与原件相同?,ios,button,uiviewcontroller,uibarbuttonitem,back,Ios,Button,Uiviewcontroller,Uibarbuttonitem,Back,我想在离开页面时通过当前UIViewController的BackburbuttonItem发送确认UIAlertView 为此,我将现有的后退按钮替换为新的UIBarButtonItem: - (void) setBackButton { NSArray * viewControllers = self.navigationController.viewControllers; UIViewController * previousController = [viewControllers o

我想在离开页面时通过当前UIViewController的BackburbuttonItem发送确认UIAlertView

为此,我将现有的后退按钮替换为新的UIBarButtonItem:

- (void) setBackButton {
NSArray * viewControllers = self.navigationController.viewControllers;
UIViewController * previousController = [viewControllers objectAtIndex:[viewControllers count]-2];

self.backButton = [[UIBarButtonItem alloc] initWithTitle:previousController.title style:UIBarButtonItemStyleBordered target:self action:@selector(backButtonPressed)];
previousController.navigationItem.backBarButtonItem = self.backButton;
}

因此,问题是:在当前UIViewController中,我似乎无法获得对@selector(backButtonPressed)的回调。在self.navigationItem.leftBarButtonItem中放置self.backButton时,它确实起作用,但按钮是矩形而不是箭头


如何获得一个外观与原始后退按钮完全相同的按钮,该按钮允许调用@selector(backButtonPressed)方法,而不是仅仅返回?

对于箭头形状的按钮,您应该使用自定义视图(具有箭头形状的图像)启动UIBarButtonim。但在导航控制器中覆盖后退按钮操作并不常见。相反,您应该以模式显示屏幕并在那里添加条形按钮(完成,取消)。希望这有帮助

我不确定哪种方法可以解决这个问题,因为我会使用navController委托来进行
navigationController:willShowViewController:animated
比较参数控制器与堆栈中的上一个控制器,因为您通常不会尝试推送上一个控制器。willShowViewController指示无论采取何种操作,都将显示以前的UIVIewController。我希望用户能够防止意外点击backbutton后发生这种情况。