내가 거기에있는 단순히 TODO 목록이 있습니다대리인을 사용하여 viewDidLoad에서 tableview를 어떻게 다시로드 할 수 있습니까?
- 프로토콜의 방법
reloadTableViewWhenItChanges
; - 데이터 가져 오기 (즉, 핵심 데이터);
컴파일러를 정지/실행 한 후에 표보기가 새로 고침됩니다. 그러나 managedObjectContext
에서 변경된 후에 만 위임 테이블 다시로드를 사용하여 viewDidLoad
(viewWillAppear
/viewDidAppear
에 없음)의 테이블보기를 다시로드해야합니다.
내가 어떻게 할 수 있습니까? 여기
내 코드 (? 무엇을 내가 예를 들어, 내 코드에[self.tableView reloadData]
을 넣어야 할 것이 잘못입니까?) :
@eik_cloner에서 언급 한 바와 같이
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"Note List";
self.barButtonAddNote = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self
action:@selector(addNewNote:)];
[self.navigationItem setRightBarButtonItem:self.barButtonAddNote animated:YES];
[self reloadTableViewWhenItChanges]; }
- (void)reloadTableViewWhenItChanges // protocol's method {
self.addNoteViewController.delegate = self;
if ([self.managedObjectContext hasChanges])
{
NSError *error;
[self.managedObjectContext save:&error];
}
[self fetchData];
[self.tableView reloadData]; }
- (void)fetchData {
NSFetchRequest *request = [[NSFetchRequest alloc]init];
NSEntityDescription *note = [NSEntityDescription entityForName:@"Note"
inManagedObjectContext:self.managedObjectContext];
[request setEntity:note];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"task" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
NSError *error = nil;
NSArray *mutableFetchResults = [self.managedObjectContext executeFetchRequest:request error:&error];
if (mutableFetchResults != nil){
self.notesArray = [[NSMutableArray alloc] initWithArray:mutableFetchResults];
} }
나는 당신이 뭔가 오해했다고 생각합니다. 당신의 View Controller가 처음으로로드 될 때, tableView는 자동으로 처음 제공된 데이터를 사용하여 다시로드됩니다. 하지만 나중에 tableView를 업데이트하려고한다고 가정 해 봅시다.이 경우 코드에서 reloadData 함수를 호출해야합니다. 그리고 ViewController를 변경할 때까지 viewDidLoad 메서드가 자동으로 다시 호출되지 않습니다. –
'-viewDidLoad'에서보기가보기와 같은 네비게이션 스택에 들어간 후에보기가 렌더링되기 때문에 테이블보기에 대해 한 가지를 다시로드 할 수 없습니다. '-viewWillAppear :'정도입니다. – holex
NSFetchedResultsController 사용을 고려하십시오. – Koen