/ / UIRefreshControl non funziona per UITableView in popover - ios, ogg-c, uitableview, ipad, uirefreshcontrol

UIRefreshControl non funziona per UITableView in popover - ios, ogg-c, uitableview, ipad, uirefreshcontrol

La mia app ha due viewController contenentiUITableViews. Una viewController viene visualizzata come una visualizzazione a schermo intero personalizzata all'interno dell'app, l'altra viene visualizzata come una visualizzazione popover. Ho aggiunto un UIRefreshControl a entrambe le TableViews per aggiornare il loro contenuto. Trascinando il refreshControl e aggiornando la tabellaView funziona perfettamente per la visualizzazione a schermo intero personalizzata. Tuttavia, il refreshControl della vista popover non sembra funzionare. Quando trascino verso il basso all'interno di tableView, l'indicatore di attività di refreshControl avanza ma si ferma a 11/12 (come mostrato nell'immagine seguente) e l'azione regfresh non sarà chiamato.

L'indicatore di attività si fermerà alle 11/12

Il codice di inizializzazione per refreshControl del popover è identico a refreshControl funzionante (eccetto che i nomi delle azioni sono diversi):

- (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
}

Ho faticato con questo problema da un po 'di tempo ma non sono riuscito a trovare alcuna soluzione. Potrebbe essere che posizionare un refreshControl all'interno di una visualizzazione popover causi un comportamento errato?

Qualsiasi aiuto sarebbe apprezzato.

risposte:

-1 per risposta № 1

In ViewController.m impostato 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];
}