0

当用户点击导航控制器上的后退按钮时,我想做一些保存的东西。这只能通过实施

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    int index = [[self.navigationController.viewControllers] indexOfObject:[self.navigationController.visibleViewController]];
    if(viewController == [[self.navigationController.viewControllers] objectAtIndex:index-1])
        //saving code here

所以当它要显示前一个视图控制器时,委托会被调用。有没有更优雅的方法来知道视图控制器何时会弹出?

我不能使用 viewWillDisappear 因为有一个显示 UIImagePickerController 的按钮,我不希望保存完成。有什么想法吗?

4

2 回答 2

1

或者

- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem     *)item
{
  //insert your back button handling logic here
  // let the pop happen
  return YES;
}     
于 2012-01-12T20:08:41.307 回答
0

您通常在viewWillDisappear:视图控制器的 " " 方法中执行类似的操作。

是的,如果您继续前进,它也会激活,但是您可以标记它以让该方法知道您是否打算启动其他东西 - 无论如何,无论如何保存可能是个好主意......

于 2010-08-09T21:11:28.263 回答