【问题标题】:What is the best way to know when the UIViewController above me in the stack has been popped?知道堆栈中我上方的 UIViewController 何时弹出的最佳方法是什么?
【发布时间】:2008-11-11 16:28:54
【问题描述】:

我有一个UIViewController 来管理一些数据的显示。当用户想要编辑此数据时,我将编辑 UIViewController 推送到堆栈上。当用户完成编辑时,顶视图控制器从堆栈中弹出。在弹出编辑视图后知道我需要更新显示的最优雅的方法是什么?

我认为我可以将内容更新代码放入我的数据视图的 viewDidLoad 方法中,但是当我的视图显示时并不总是调用此方法,尤其是当我向下导航视图时堆栈。

我还考虑将我的数据视图控制器设置为UINavigationController 的委托并等待– navigationController:didShowViewController:animated: 被调用,我担心可能有其他视图控制器需要在显示时得到通知管理哪个控制器应该接收didShowViewController 消息将变成一个小麻烦。

【问题讨论】:

    标签: iphone cocoa-touch


    【解决方案1】:

    我认为 viewWillAppear 可以解决问题。

    否则,您的编辑视图控制器可能会调用一个新的委托方法来指向您的父控制器。在那里,您可以更新数据模型和显示。例如:

    - (BOOL)textFieldShouldReturn:(UITextField *)textField {
        if ([delegate respondsToSelector:@selector(editEntryByTitle:)])
            [delegate performSelector:@selector(editEntryByTitle:) withObject: textField.text];
        [textField resignFirstResponder];
        [self dismissModalViewControllerAnimated:YES];
        return YES;
    }
    

    【讨论】:

      猜你喜欢
      • 2019-05-25
      • 1970-01-01
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      • 2014-05-25
      • 1970-01-01
      • 2013-04-21
      • 2011-03-01
      相关资源
      最近更新 更多