UIRefreshControl不酥料饼的工作的UITableView

问题描述:

我的应用程序具有包含UITableViews 2个viewControllers。一个viewController在应用程序内部显示为自定义全屏视图,另一个显示为弹窗视图。我为两个tableView添加了一个UIRefreshControl来更新它们的内容。拖动refreshControl并刷新tableView适用于自定义全屏视图。但是,popover视图的refreshControl似乎不起作用。当我在tableView中向下拖动时,refreshControl的活动指示器会前进,但在11/12处停止(如下图所示),并且不会调用regfresh操作。UIRefreshControl不酥料饼的工作的UITableView

Activity indicator will stop at 11/12

为酥料饼的refreshControl初始化代码是与工作refreshControl相同(除了动作的名称不同):

- (void) viewDidLoad 
{ 
    self.refreshControl = [[UIRefreshControl alloc] init]; 
    self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString: @"Refreshing..."]; 
    [self.refreshControl addTarget: self action: @selector(reloadTableData) forControlEvents: UIControlEventValueChanged]; 
    [self.tableView addSubview: self.refreshControl]; 
} 

- (void) reloadTableData 
{ 
    // reloading code. This method is not called in the popover view 
} 

我与这个问题有一段时间了挣扎,但没没有设法找到任何解决方案。难道把一个refreshControl放置在弹窗视图中会导致错误的行为?

任何帮助,将不胜感激。

ViewController.m设置viewDidAppear

UIRefreshControl *refreshControl = [UIRefreshControl new]; 
    [refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged]; 
    [_mainTableView addSubview:refreshControl]; 
    [_mainTableView sendSubviewToBack:refreshControl]; 

- (void)handleRefresh:(UIRefreshControl *)refreshControl { 

//set your code here 
    [_mainTableView reloadData]; 
    [_mainTableView layoutIfNeeded]; 
    [refreshControl endRefreshing]; 
} 
+0

这基本上是我使用相同的代码。 refreshControl的初始化似乎不是问题,因为当我向下拖动tableView时它是可见的。此外,相同的代码在全屏视图中工作。看起来refreshControl的行为不同,因为它放置在弹出窗口视图中,至少这正是我所想的。 –