我创建了一个DetailViewController .h和.m文件。然后我在故事板中创建了一个UITableViewController,并将其连接到我制作的文件。
然后我将此代码添加到DetailViewController.m文件中:
#import "MasterViewController.h"
#import "DetailViewController.h"
// 1
#import "RageIAPHelper.h"
#import <StoreKit/StoreKit.h>
// 2
@interface MasterViewController () {
NSArray *_products;
}
@end
@implementation MasterViewController
// 3
- (void)viewDidLoad
{
[super viewDidLoad];
self.title = @"In App Rage";
self.refreshControl = [[UIRefreshControl alloc] init];
[self.refreshControl addTarget:self action:@selector(reload) forControlEvents:UIControlEventValueChanged];
[self reload];
[self.refreshControl beginRefreshing];
}
// 4
- (void)reload {
_products = nil;
[self.tableView reloadData];
[[RageIAPHelper sharedInstance] requestProductsWithCompletionHandler:^(BOOL success, NSArray *products) {
if (success) {
_products = products;
[self.tableView reloadData];
}
[self.refreshControl endRefreshing];
}];
}
#pragma mark - Table View
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
// 5
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return _products.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
SKProduct * product = (SKProduct *) _products[indexPath.row];
cell.textLabel.text = product.localizedTitle;
return cell;
}
@end
但我在这样的行上遇到编译错误:
self.refreshControl = [[UIRefreshControl alloc] init];
说无法识别self.refreshControl。但是如果文件是UITableView文件怎么办?
编辑:
这是.h
//
// DetailViewController.h
// entrepreneur
//
// Created by MacOSLion on 8/7/13.
// Copyright (c) 2013 MacOSLion. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface DetailViewController : UITableViewController
@end
答案 0 :(得分:1)
我认为你在某处犯了错误......
请参阅,向您展示实施:
@implementation MasterViewController
但定义为:
@interface DetailViewController : UITableViewController
这就是为什么,当然,它无法在MasterViewController中找到refreshControl:它是UITableViewController的属性,所以你的DetailViewController属性。
如果您不清楚,请告诉我。
答案 1 :(得分:0)
将此添加到.h
@property (weak, nonatomic) UIRefreshControl *refreshControl;