我想通过当前UIViewController的backBarButtonItem离开页面时发送确认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.backButton放入self.navigationItem.leftBarButtonItem时,它确实有效,但按钮是矩形而不是箭头。
如何获得一个看起来与原始后退按钮完全相同的按钮,该按钮允许调用@selector(backButtonPressed)方法而不是仅仅返回?
答案 0 :(得分:0)
对于箭头形状的按钮,您应该使用自定义视图(具有箭头形图像)启动UIBarButtonItem。但是在导航控制器中覆盖后退按钮动作并不常见。而不是那样,你应该以模态方式呈现屏幕并在那里添加条形按钮(完成,取消)。希望这有帮助!