【发布时间】:2013-05-22 08:41:50
【问题描述】:
是否可以在启动应用程序时自动启动UIRefreshControl?我试过打电话给self.refreshControl beginRefreshing];,但它不起作用。
这是我 viewDidLoad 中的一些代码:
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(refreshNowShowingMoviesList:) forControlEvents:UIControlEventValueChanged];
[self setRefreshControl:refreshControl];
[refreshControl beginRefreshing];
编辑
这是我的 refreshNowShowingMoviesList 方法:
- (void)refreshNowShowingMoviesList:(id)sender
{
// Create URL
NSURL *url = [NSURL URLWithString:kNowShowingMoviesURL"];
// Initialize URL request
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
// Set value on header
[urlRequest setValue:kHeaderFieldValue forHTTPHeaderField:kHeaderField];
// JSON request operation
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:urlRequest success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
NSMutableArray *results = [(NSDictionary *)JSON objectForKey:@"results"];
if ([results count]) {
_objects = results;
// Reload table view
[self.tableView reloadData];
// End refreshing
[(UIRefreshControl *)sender endRefreshing];
}
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
// End refreshing
[(UIRefreshControl *)sender endRefreshing];
// Show error alert
dispatch_async(dispatch_get_main_queue(), ^{
UIAlertView *errorAlert = [[UIAlertView alloc] initWithTitle:kSorryTitle message:[error localizedDescription] delegate:self cancelButtonTitle:nil otherButtonTitles:kOk, nil];
[errorAlert show];
});
}];
// Start operation
[operation start];
}
带有错误信息:
'NSInvalidArgumentException', reason: '-[MasterViewController endRefreshing]: unrecognized selector sent to instance 0xa172450'
【问题讨论】:
-
如果你想调用 refreshNowShowingMoviesList:,就这样做。或者你想看 RefreshControl 动画?
-
调用该方法会出错,因为在获取结果后,它会停止
UIRefreshControl的刷新动画。 -
错误信息是什么?可以发一下方法代码吗?
-
按要求添加了附加代码。
-
消息很清楚,您的 MasterViewController 没有实现 endRefreshing 方法。
标签: iphone objective-c xcode uirefreshcontrol