2013-11-26 17 views
0

我有一個UITiewController有一個UITableView作爲子視圖。我正試圖在桌面上添加一個拉到刷新。UIRefreshControl沒有UITableViewController沒有調用選擇器

下面的一些例子和討論,我發現here,我有UIRefresh顯示,但它從來沒有調用選擇器。我沒有收到有關拉動行動的通知。

我不能使用UITableViewController作爲我的主控制器,因爲我需要在屏幕底部添加一個固定按鈕。

我有這種感覺,我錯過了某些希望對別人顯而易見的事情。

@interface ActivityViewController()<UITableViewDelegate, UITableViewDataSource, UIScrollViewDelegate> 
@end 



- (void)viewDidLoad{ 

    [super viewDidLoad]; 

    _myTableView.delegate = self; 

    _myTableView.dataSource = self; 

    _tableViewController = [UITableViewController new]; 

    _tableViewController.tableView = _myTableView; 

    [self addChildViewController:_tableViewController]; // Not sure this is necessary 

    _refreshControl = [UIRefreshControl new]; 

    [_refreshControl addTarget:self action:@selector(loadMoreData) forControlEvents:UIControlEventValueChanged]; 

    _tableViewController.refreshControl = _refreshControl; 

} 

- (void)loadMoreData{ 

    NSLog(@"loadMoreData"); 
} 

回答

1

好的。這是現在的工作。但我不知道爲什麼!我有點離開了它,改變了其他需要做的事情,然後昨晚再測試一次,它正在工作。我承認我有點困惑。我使用了以前的帖子here中給出的答案的下面的代碼,就像我幾天前做的那樣。所以感謝您的時間和意見。如預期的那樣,它現在完美無缺。

// Refresh control 
UITableViewController *tableViewController = [[UITableViewController alloc] init]; 
tableViewController.tableView = self.myTableView; 

self.refreshControl = [[UIRefreshControl alloc] init]; 
[self.refreshControl addTarget:self action:@selector(loadMoreData) forControlEvents:UIControlEventValueChanged]; 
tableViewController.refreshControl = self.refreshControl; 
0

你應該實例化tableviewcontroller使用

[UITableViewController alloc] initWithStyle:(UITableViewStyle) 

new做的頁頭與初始化,但你應該使用指定的初始化

+0

這沒有幫助,實際上,然後我UIRefreshController根本沒有顯示。我在原始文章中添加的鏈接有詳細的討論,解釋了爲什麼必須按照我的方式完成。只是我的選擇器被忽略.... – Alan

+0

好吧,我改變了,但仍然是我的選擇器 - (void)loadMoreData不被調用。 – Alan

+0

我不知道。也許試着讓你的refreshcontroller成爲一個實例變量,或者檢查它是否爲零,並且你不需要[self addChildViewController:_tableViewController];//不知道這是必要的 –