Я установил UIRefreshControl в моем UITableViewController (который находится внутри UINavigationController), и он работает, как ожидалось (т.е. при спуске срабатывает правильное событие). Однако, если я программно вызываю метод экземпляра beginRefreshing
в элементе управления обновлением, например:
[self.refreshControl beginRefreshing];
Ничего не произошло. Он должен оживить и показать счетчик. Метод endRefreshing
работает правильно, когда я вызываю его после обновления.
Я разработал базовый прототип проекта с таким поведением, и он работает правильно, когда мой UITableViewController добавляется непосредственно в корневой контроллер представления делегата приложения, например:
self.viewController = tableViewController;
self.window.rootViewController = self.viewController;
Но если я сначала добавлю tableViewController
в UINavigationController, а затем добавлю контроллер навигации как rootViewController
, метод beginRefreshing
перестанет работать. Например.
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:tableViewController];
self.viewController = navController;
self.window.rootViewController = self.viewController;
Я чувствую, что это как-то связано с иерархиями вложенных представлений в контроллере навигации, которые не очень хорошо сочетаются с элементом управления обновлением - какие-либо предложения?
Спасибо