2016-05-12 5 views
2

У моего приложения есть два диспетчера viewControllers, содержащих UITableViews. Один viewController отображается как пользовательский полноэкранный вид внутри приложения, другой отображается в виде всплывающего окна. Я добавил UIRefreshControl для обоих табличных экранов, чтобы обновить их содержимое. Перетаскивание refreshControl и обновление tableView отлично подходит для пользовательского полноэкранного просмотра. Однако, refreshControl представления popover не работает. Когда я перетаскиваю внутри tableView, индикатор активности refreshControl прогрессирует, но останавливается на 11/12 (как видно на изображении ниже), и действие regfresh не будет вызываться.UIRefreshControl не работает для UITableView в popover

Activity indicator will stop at 11/12

Код инициализации для refreshControl в поповер идентична с рабочим refreshControl (за исключением названия этого действия различны):

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

Я боролся с этой проблемой на некоторое время теперь, но сделал не удается найти какие-либо решения. Может ли быть, что размещение refreshControl внутри представления popover вызывает ошибочное поведение?

Любая помощь будет оценена по достоинству.

ответ

-1

В ViewController.m установлен 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

Это в основном тот же код, я использую. Инициализация refreshControl не кажется проблемой, потому что она видна, когда я перетаскиваю таблицуView. Кроме того, тот же код работает в полноэкранном режиме. Кажется, что refreshControl ведет себя по-другому, потому что он помещен во всплывающее представление, по крайней мере, это то, о чем я думаю. –