я реализовал pull to refresh
функциональность для моего контроллера:Прицепные обновить: экран исчезает
- viewDidLoad {
self.refresh = [[UIRefreshControl alloc] init];
[self.refresh addTarget:self action:@selector(refreshData) forControlEvents:UIControlEventValueChanged];
[self.tableView addSubview:self.refresh];
}
- (void) refreshData {
__weak myController *weakSelf = self;
[[NetworkcallManager instance] getCall:^(NSString *result){
if(weakSelf != nil) {
[weakSelf.refresh endRefreshing];
[weakSelf.tableView reloadData];
}
}];
}
Обновление экрана работает, как ожидалось, но когда я тяну вниз экран слишком сильно, то весь экран исчезает на мгновение и затем данные обновляются.
Есть ли способ избежать исчезновения экрана? Мне интересно, из-за функции reloadData. Если он называет «viewWillAppear
», тогда я могу понять проблему, с которой я столкнулся. (Мой код viewWillAppear приводит к кратковременному закрытию экрана).
Редактировать: Если я вытащил без подключения к интернету (отключил Wi-Fi), тогда экран не исчезнет.
У вас есть ошибка AutoLayout? – iphonic
Нет, не знаю. Все работает отлично с пустым экраном на мгновение. –
попробуйте перезагрузить ваш Tableview в главном потоке - 'dispatch_async (dispatch_get_main_queue(),^{ [weakSelf.refresh endRefreshing]; [weakSelf.tableView reloadData]; });' – Rajat