2016-05-12 5 views
2

私のアプリケーションには、UITableViewを含む2つのviewControllerがあります。 1つのviewControllerは、アプリケーション内にカスタムフルスクリーンビューとして表示され、もう1つはPopoverビューとして表示されます。彼らのコンテンツを更新するために、両方のtableViewsに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 
} 

何も解決策を見つけることができません。 popoverビュー内にrefreshControlを配置すると、誤った動作が発生する可能性がありますか?

ご協力いただければ幸いです。 ViewController.m

答えて

-1

は基本的に私が使用しています同じコードである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

を設定します。私がtableViewをドラッグすると表示されるので、refreshControlの初期化は問題ではないようです。また、同じコードが全画面表示で機能しています。少なくとも、私が考えているのは、Popoverビューの内側に配置されているため、refreshControlの動作が異なるようです。 –

関連する問題