UIRefreshControl freezes when temporarily showing another tab (iOS 7)

I have one of my tabs:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.clearsSelectionOnViewWillAppear = YES;

    UIRefreshControl* refreshControl = [[UIRefreshControl alloc] init];
    refreshControl.attributedTitle   = [[NSAttributedString alloc] initWithString:@"Sync"];
    [refreshControl addTarget:self 
                       action:@selector(refresh:) 
             forControlEvents:UIControlEventValueChanged];
    self.refreshControl = refreshControl;

    //### Workaround: http://stackoverflow.com/a/19126113/1971013
    dispatch_async(dispatch_get_main_queue(), ^
    {
        [self.refreshControl beginRefreshing];
        [self.refreshControl endRefreshing];
    });
}

- (void)refresh:(id)sender
{
    if ([Settings sharedSettings].haveAccount == YES)
    {
        [[DataManager sharedManager] synchronizeWithServer:^(NSError* error)
        {
            [sender endRefreshing];
        }];
    }
    else
    {
        [sender endRefreshing];
    }
}

The refresh slider starts to spin normally when the table is pulled.

However, when I, while it rotates, briefly displays another tab, and then returns, the update control stops rotating.

Any idea why?

+4
source share
2 answers

Try moving this piece of code from viewDidLoadto viewWillAppear:

//### Workaround: http://stackoverflow.com/a/19126113/1971013
dispatch_async(dispatch_get_main_queue(), ^
{
    [self.refreshControl beginRefreshing];
    [self.refreshControl endRefreshing];
});
+4
source

, , , / viewWillDisappear/viewWillAppear

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    refreshControl.endRefreshing()
}

override func viewWillAppear(_ animated: Bool) {

    super.viewWillAppear(animated)

    if isLoadingData {
        // for simplicity using harcoded height for refresh control
        tableView.setContentOffset(CGPoint(x: 0, y: -60), animated: false)
        refreshControl.beginRefreshing()
    }
}
0

Source: https://habr.com/ru/post/1533247/


All Articles