2016-05-12 2 views
2

Mon application a deux viewControllers contenant UITableViews. Un viewController est affiché comme une vue en plein écran personnalisée dans l'application, l'autre est affichée comme une vue popover. J'ai ajouté un UIRefreshControl aux deux tablesViews afin de mettre à jour leur contenu. Faire glisser le refreshControl et actualiser le tableau fonctionne correctement pour l'affichage plein écran personnalisé. Cependant, refreshControl de la vue popover ne semble pas fonctionner. Lorsque je fais glisser vers le bas à l'intérieur de la tableView, l'indicateur d'activité de refreshControl progresse mais s'arrête à 11/12 (comme le montre l'image ci-dessous) et l'action regfresh ne sera pas appelée.UIRefreshControl ne fonctionne pas pour UITableView dans popover

Activity indicator will stop at 11/12

Le code d'initialisation pour refreshControl est identique à la refreshControl travail du popover (sauf les noms de l'action sont différents):

- (void) viewDidLoad 
{ 
    self.refreshControl = [[UIRefreshControl alloc] init]; 
    self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString: @"Refreshing..."]; 
    [self.refreshControl addTarget: self action: @selector(reloadTableData) forControlEvents: UIControlEventValueChanged]; 
    [self.tableView addSubview: self.refreshControl]; 
} 

- (void) reloadTableData 
{ 
    // reloading code. This method is not called in the popover view 
} 

J'ai lutté avec ce problème depuis un certain temps maintenant, mais fait pas réussi à trouver des solutions. Se pourrait-il que placer un refreshControl dans une vue popover provoque un comportement erroné?

Toute aide serait appréciée.

Répondre

-1

Dans ViewController.m mis viewDidAppear

UIRefreshControl *refreshControl = [UIRefreshControl new]; 
    [refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged]; 
    [_mainTableView addSubview:refreshControl]; 
    [_mainTableView sendSubviewToBack:refreshControl]; 

- (void)handleRefresh:(UIRefreshControl *)refreshControl { 

//set your code here 
    [_mainTableView reloadData]; 
    [_mainTableView layoutIfNeeded]; 
    [refreshControl endRefreshing]; 
} 
+0

qui est fondamentalement le même code que je utilise. L'initialisation de refreshControl ne semble pas être le problème car il est visible lorsque je fais glisser le tableau vers le bas. En outre, le même code fonctionne en mode plein écran. Il semble que le refreshControl se comporte différemment car il est placé dans une vue popover, du moins c'est ce que je pense. –