2

我想通过当前 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) 方法而不是仅仅返回?

4

1 回答 1

0

对于箭头形按钮,您应该使用自定义视图(具有箭头形图像)启动 UIBarButtonItem。但是在导航控制器中覆盖后退按钮操作并不常见。取而代之的是,您应该以模态方式呈现屏幕并在那里添加栏按钮(完成,取消)。希望这可以帮助!

于 2012-11-28T19:06:01.703 回答