2014-06-04 2 views
0

내 문제에 대해 많이 읽었지만 대리인을 사용해야한다고 생각했지만 실제로 많은 노력을 기울였습니다. 제대로 작동하지 못했습니다. 나는 아주 초보자이므로 뭔가 빠뜨릴 수 있습니다!iOS - 다른 클래스의 표에있는 reloadData

그래서 여기에 있습니다 :

나는 나누어보기가 있습니다. 1면에 collectionView와 반대쪽에 tableView가 있습니다. 달성하고자하는 것은 collectionView에서 tableView로 데이터를 전달하는 것입니다. 컬렉션에서 하나의 항목을 클릭하면 해당 항목이 표에 나타나기를 원합니다. 그래서 내 테이블에 배열이 표시되고 잘 동작하며 컬렉션의 항목을 클릭 할 때마다 Array에 사전이 추가됩니다. 이것은 잘 작동합니다. collectionView의 didSelectItemAtIndexPath에있을 때 tableView를 다시로드하려고하면 문제가 발생합니다.

[self.tableView reloadData]에 대한 작업으로 tableView에서 버튼을 만들면 정상적으로 작동합니다. 난 그냥 collectionView에서 할 수 없습니다.

가 나는 시도했다 : - Can't use reloadData from another class - 그것이 작동되도록 할 수 iOS how to acces [tableView reloadData] from another class

그리고 더 많은,하지만합니다.

도움을 주셔서 감사합니다.

Ed.

답변

1

NSNotificationCenter를 사용하여 두 가지보기간에 전화를 걸 수 있습니다.

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(receiveReloadTableViewNotification:) 
              name:@"reloadTableViewNotification" 
              object:nil]; 

을 다음 TableViewContoller에서 더 아래이 방법을 추가 : 다음 TableViewController에서 자사의 viewDidLoad 메서드에 다음 코드를 추가

- (void)receiveReloadTableViewNotification:(NSNotification *) notification 
{ 
    [self.tableView reloadData]; 
} 

이제 CollectionView에서 버튼의 IBAction를이 추가 :

[[NSNotificationCenter defaultCenter] postNotificationName:@"reloadTableViewNotification" 
                object:self]; 
+0

대단히 훌륭합니다. 시도한 다른 것들보다 훨씬 간단합니다! – Doud