Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS - Refresh Control - "Attempting to change the refresh control while it is not idle is strongly discouraged and probably won't work properly."

I cannot find many references to this warning anywhere. I have two view controllers that offer pull-to-refresh control. One is fine. The other produces the warning above. I copied the code from one to the other.

The code is as follows (PFUser refers to Parse.com):

[super viewDidAppear:animated];
    if ([PFUser currentUser]) {
        NSLog(@"who's the user: %@", [PFUser currentUser]);


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

    } else {

Has anyone else encountered this? and is there a work-around/fix?

like image 925
ICL1901 Avatar asked Jan 22 '14 23:01

ICL1901


2 Answers

Do it inside viewDidLoad method.

like image 178
cahn Avatar answered Sep 19 '22 02:09

cahn


In my case, this warning popped up since I was doing collectionView.refreshControl = nil while refreshControl was animating. Calling refreshControl.endRefreshing() before doing that eliminated the warning.

like image 28
Orkhan Alikhanov Avatar answered Sep 21 '22 02:09

Orkhan Alikhanov