代码之家  ›  专栏  ›  技术社区  ›  Chris McCall

从实用程序的FlipSideView返回时强制重新加载视图

  •  0
  • Chris McCall  · 技术社区  · 14 年前

    我有一个iPhone3.1.3的实用程序。我的主视图加载良好。我切换到实用程序的翻转视图,并更改一些设置。如何调用当前输入的代码 viewDidLoad 在主视图中刷新,设置是否已更改?

    我是否创建了一个公共方法并从反向视图的viewdidUnload方法调用它?我打电话吗 可视负载 直接?最好的方法是什么?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Mike Weller    14 年前

    首先,你不应该打电话 viewDidLoad 直接。它可能不会导致任何问题,但最好让这样的方法只由底层API调用。只需将一些视图初始化移到一个新方法中,比如 configureViewForSettings 或者沿着这些线。

    最好的方法是使用委托。当您需要向“父”视图发送某种数据或通知时,这是最合适的。创建新协议 MySettingsViewDelegate 用这样的方法 settingsViewChangedSettings:(MySettingsView *)settingsView . 然后在设置视图控制器上添加 id<MySettingsViewDelegate> delegate 财产。

    当设置更改时,调用如下委托方法:

    [self.delegate settingsViewChangedSettings:self];
    

    在主视图控制器中,创建/显示设置视图时,将自己设置为代理

    mySettingsView.delegate = self;
    /* Display the settings view */
    

    然后某处:

    - (void)settingsViewChangedSettings:(MySettingsView *)settingsView {
        /* Settings changed, refresh your view */
        [self configureViewForSettings];
    }