2016-05-12 47 views
2

我的應用程序具有包含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放置在彈窗視圖中會導致錯誤的行爲?

任何幫助,將不勝感激。

回答

-1

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的行爲不同,因爲它放置在彈出窗口視圖中,至少這正是我所想的。 –