临时显示其他选项卡时 UIRefreshControl 冻结(iOS 7)

mea*_*ers 4 iphone objective-c uitableview uirefreshcontrol ios7

我的其中一个标签上有以下内容:

- (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];
    }
}
Run Code Online (Sandbox Code Playgroud)

下拉表时,刷新控件开始正常旋转。

但是,当我在旋转时,很快显示另一个选项卡然后返回时,刷新控件停止旋转。

知道为什么吗?

Nev*_*ess 5

尝试将这段代码从 移动viewDidLoadviewWillAppear

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