2013-03-29 37 views
0

您好我目前已经在UIViewController嵌入tableview。在tableview中,我收集了json数据。我希望创建一个刷新控制器,所以无论何时用户拉下来,json数据都会刷新。刷新嵌入式桌面控制器ios 6

我曾尝试下面的代码

- (void)viewDidLoad 
{ 
[superviewDidLoad]; 

UIRefreshControl *refreshControl = [[UIRefreshControl alloc] 
init]; 
[refreshControl addTarget:nil action:@selector(updateArray) forControlEvents:UIControlEventValueChanged]; 
self.refreshControl = refreshControl; 

} 

-(void) updateArray{ 
[self.tableView reloadData]; 
[self.refreshControl endRefreshing]; 
} 

我得到它说,在ViewController中没有发现财产refreshControl错误。

是因为我使用嵌入式tableview还是我做错了什么?

+0

这段代码在你的'UIViewController'或其他地方吗? – Isaac

+0

代码位于UIViewController中 – user2121594

+0

它看起来像刷新控制处理需要在UITableViewController而不是UIViewController。也许,请参阅[本教程](http://www.lextech.com/2012/10/ios-6-pull-to-refresh-tutorial/)。 – Isaac

回答

0

您正在实例化viewDidLoad方法内的UIRefreshControl。 updateArray方法对该对象的引用不可见。您需要将其设为属性或实例变量。

@property (strong, nonatomic) UIRefreshControl *refreshControl; 

然后代替

UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init]; 

使用

refreshControl = [[UIRefreshControl alloc] init]; 
+0

嗨,我已经尝试过没有任何反应。 – user2121594

+0

但它仍然抛出未找到属性的错误? – rantunes

+0

不错,但是,刷新不会发生 – user2121594

0

您可以添加UIRefreshControl只的UITableViewController,而不是UIViewController中。 检查这个答案在UITableViewController是UIViewController的UIViewController中使用UIRefreshControl。 https://stackoverflow.com/a/14148118/1017099