2

UITabBarController가 내 응용 프로그램 대리인의 일부로 있고 사용자가 특정 탭 (즐겨 찾기)을 터치하고 그 안에 테이블을 강제로드하면 데이터가 다시로드됩니다.UITabBarItem을 누를 때 UITableView에 데이터 다시로드

이 경우 가장 좋은 방법은 무엇입니까?

내 응용 프로그램 대리인에게 UITabBarDelegate 프로토콜을 추가하고 didSelectViewController 메서드를 구현했습니다. 여태까지는 그런대로 잘됐다. 메소드 내에서 viewController를 얻으므로 제목을 확인하여 어떤 탭이 선택되었는지 확인할 수 있습니다.

어떻게하면 reloadData 메시지를 viewController의 UITableView로 보낼 수 있습니까? 내 FavouritesViewController 클래스에서 메서드를 만들고 그 호출하지만 작동하지 않는 시도했다.

예제 코드 : 당신이 tableViewController의 viewWillDisplay 방법에 [UITableView reloadData]를 추가 할 필요가 같은

#pragma mark UITabBarController delegate methods 

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
{ 
    // If the favourites tab is pressed then reload the data 
    if (viewController.title = @"Favourites") 
    { 
     if ([viewController respondsToSelector:@selector(reloadFavourites:)]) 
     { 
     [viewController reloadFavourites]; 
     } 
    } 
} 

답변

3

소리가 난다. 이로 인해 표가 표시 될 때마다 다시로드됩니다.

강제로 다시로드하려는 경우 tableview가 이미 표시되어 있고 OP에서 만든 메서드에서 reload를 호출해야합니다.

+1

이 ... 당신이 말한대로나요 내의 ViewController에 넣고 : - (무효) viewWillAppear : 애니메이션 (BOOL) { \t [favouritesTableView reloadData]; \t [super viewWillAppear : animated]; } 모두 잘 작동하므로 위의 작업을 수행 할 필요가 없습니다. 다시 감사합니다. Dave –

+0

도움이 될 수있어서 기쁩니다. – TechZen

1

다음 코드는 테이블 마다 새로 고쳐야합니다.보기가 나타납니다. 큰 감사 TechZen입니다

-(void)viewWillAppear:(BOOL)animated 
{ 
    [[self tableView] reloadData]; 
} 
관련 문제