У моего приложения есть два диспетчера viewControllers, содержащих UITableViews. Один viewController отображается как пользовательский полноэкранный вид внутри приложения, другой отображается в виде всплывающего окна. Я добавил UIRefreshControl для обоих табличных экранов, чтобы обновить их содержимое. Перетаскивание refreshControl и обновление tableView отлично подходит для пользовательского полноэкранного просмотра. Однако, refreshControl представления popover не работает. Когда я перетаскиваю внутри tableView, индикатор активности refreshControl прогрессирует, но останавливается на 11/12 (как видно на изображении ниже), и действие regfresh не будет вызываться.UIRefreshControl не работает для UITableView в popover
Код инициализации для 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 вызывает ошибочное поведение?
Любая помощь будет оценена по достоинству.
Это в основном тот же код, я использую. Инициализация refreshControl не кажется проблемой, потому что она видна, когда я перетаскиваю таблицуView. Кроме того, тот же код работает в полноэкранном режиме. Кажется, что refreshControl ведет себя по-другому, потому что он помещен во всплывающее представление, по крайней мере, это то, о чем я думаю. –