我搜索了很多但仍未找到答案......
我正在使用故事板在xcode 5.0中使用iphone App(大学)。
我有一个带有表视图的View Controller,一切正常(数据源,委托...)。项存储在一个数组中(称之为“array1”)。我有一个ADD按钮,它会显示我想要添加(如果选中)到array1的项目列表。我将检查的项目存储在另一个数组(“array2”)中。问题是,当我将array2传递给前一个视图控制器时,我丢失了array1中的所有数据(它变为零)。 我用来将数据从array2传递到VC的代码是:
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"updateFavoritesSegue"]) {
FavoritesViewController *targetVC = (FavoritesViewController*) segue.destinationViewController;
[targetVC updateFavorites:[self newFavoritesArray]];
}
}
updateFavorites方法实现如下。
-(void) updateFavorites:(NSArray *)newFavorites {
[self.favorites addObjectsFromArray:newFavorites];
[self.favoritesTableView reloadData];
}
非常感谢你的帮助。
答案 0 :(得分:2)
为什么不用一些处理程序?
secondVC.h
@property (nonatomic, copy) void (^didFinishPickingItemsHandler)(NSArray *items);
然后从第一个VC:
- (void)showSecondScreen {
MYSecondVC *secondVC = /* initialisation code here */
__weak MyFirstVC *self_ = self;
secondVC.didFinishPickingItemsHandler = ^(NSArray *items) {
/* update you data here with your array1 and received picked items */
[self.navigationController popViewControllerAnimated:YES];
};
[self.navigationController pushViewController:secondVC animated:YES];
}