2016-12-28 4 views
1

я реализовал 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), тогда экран не исчезнет.

+0

У вас есть ошибка AutoLayout? – iphonic

+0

Нет, не знаю. Все работает отлично с пустым экраном на мгновение. –

+0

попробуйте перезагрузить ваш Tableview в главном потоке - 'dispatch_async (dispatch_get_main_queue(),^{ [weakSelf.refresh endRefreshing]; [weakSelf.tableView reloadData]; });' – Rajat

ответ

0

У меня проблема. В коде я очищаю таблицу, а затем обновляю ее. В результате экран мгновенно исчезает.