【问题标题】:How to execute a function every time a Navigator view controller is loaded?每次加载 Navigator 视图控制器时如何执行一个函数?
【发布时间】:2012-06-13 02:02:27
【问题描述】:

我的应用有第二个视图,其中显示了一个导航栏。我想在第二个视图打开时执行一个函数。但是当我打开第二个视图并返回主视图并重新打开第二个视图时,它显示了最后的更改并且没有新的更改。每次显示第二个视图时如何执行函数?

【问题讨论】:

  • 第二个视图是 UIView 还是 UIVIewController?

标签: iphone xcode uiviewcontroller uinavigationcontroller


【解决方案1】:

您应该全局初始化 mainView 上的第二个控制器。

- (void)functionSecondView:(BOOL)isReload {
        // Do something on your second contoller(object values)
         if(isReload) {
            [secondContoller reload];
         }
         [self.navigationController pushViewController:secondContoller animated:YES];
 }

注意:如果要清除secondController上的数据,请使用reload函数

【讨论】:

    【解决方案2】:

    您可以编写一个在第二个视图中加载数据的方法。 例如如果您将数据存储在数组中,您可以通过以下方式进行操作:
    - (void)loadDataInSecondView:(NSArray*)inputData { //写入逻辑以在第二个视图中加载数据 }

    当您呈现第二个视图时,只需调用此方法即可。

    【讨论】:

    • 谢谢,我想重新加载第二个视图,因为第二个视图中的所有对象都应该重新打开并重新创建
    【解决方案3】:

    为什么不直接使用第二个视图控制器的 -(void)viewWillAppear:(BOOL)animated(或 didAppear)方法?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多