不知道如何设置UITableViewController

时间:2013-08-07 23:49:30

标签: ios ios6

我创建了一个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

2 个答案:

答案 0 :(得分:1)

我认为你在某处犯了错误......

请参阅,向您展示实施:

@implementation MasterViewController

但定义为:

@interface DetailViewController : UITableViewController

这就是为什么,当然,它无法在MasterViewController中找到refreshControl:它是UITableViewController的属性,所以你的DetailViewController属性。

如果您不清楚,请告诉我。

答案 1 :(得分:0)

将此添加到.h

 @property (weak, nonatomic) UIRefreshControl *refreshControl;