从另一个视图控制器更新tabBarcontroller中的一个视图

时间:2010-06-10 10:22:35

标签: iphone

我一直在寻找这个问题的解决方案......但我没有得到它......

我有一个应用程序,其中有一个tabbarcontroller,其中有两个视图添加到它的viewcontrollers数组中。 。一个是列表视图,另一个是将项目添加到列表中的视图..除了这个tabbarcontroller,我有一个编辑viewcontroller,当它点击tabbarcontroller中列表视图的一个项目时被推入导航控制器。此编辑视图控制器用于更新列表视图中的值。

当我从编辑视图控制器返回时,我需要更新tabbarcontroller中的列表视图......请任何人建议我一个解决方案......

1 个答案:

答案 0 :(得分:0)

我会考虑使用通知。当您的编辑控制器检测到编辑操作时,您可以关闭通知,并且应该注册列表视图控制器以侦听该通知。编辑视图控制器可以传递通知中的新列表内容。

有关详细信息,请查看notification center documentation

e.g。

// In some .h file somewhere
#define kListHasBeenEditedNotification @"listHasBeenEditedNotification"

...
// Inside your list view controller
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(listUpdated:)
                                             name:kListHasBeenEditedNotification
                                           object:nil];

- (void) listUpdated:(NSNotification *)note {
    // Deal with the list data (which is in [note.userInfo objectForKey:@"listItems"]
    ...
}



...
// After an edit has been done (inside your edit view controller)
NSDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys:listItems, @"listItems", nil];
[[NSNotificationCenter defaultCenter] postNotificationName:kListHasBeenEditedNotification
                                                    object:self
                                                  userInfo:userInfo];