我尝试使用核心数据插入项目后重新加载我的表视图控制器。我正在使用情节提要来呈现我的模式视图控制器,并设置目标视图控制器的委托以准备进行搜索,但是我认为这是问题所在,因为未触发我的didAddCollection方法。我不确定我在这里想念的是什么。我使用iOS TableView Reload after dismissing modal作为当前代码的基础。
在我的CCNewCollectionViewController.h中
@protocol NewCollectionDelegate <NSObject>
-(void) didAddCollection;
@end
@interface CCNewCollectionViewController : UIViewController {
id delegate;
}
@property (nonatomic, retain) id <NewCollectionDelegate> delegate;
在我的CCNewCollectionViewController.m中
@implementation CCNewCollectionViewController
@synthesize delegate;
// save data
[self.delegate didAddCollection];
// dismiss view controller
在我的CollectionTableViewController.m中
@interface CollectionTableViewController () <NSFetchedResultsControllerDelegate, NewCollectionDelegate>
-(void) didAddCollection {
[self.tableView reloadData];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
[[segue destinationViewController] setDelegate:self];
}
最佳答案
一个非常愚蠢的错误。在设置目标视图控制器的委托时,实际上是在设置UINavigationController的委托,而不是CCNewCollectionViewController。
UINavigationController *nc = [segue destinationViewController];
CCNewCollectionViewController *vc = nc.viewControllers[0];
[vc setDelegate:self];
我将我的prepareForSegue代码更改为此,它解决了我的问题!