我正在尝试UIRefreshControl
在我的应用程序中实现。我有一个 xib 文件,我UITableViewController
在空的 nib 文件中添加了一个,并将刷新属性设置为“启用”。我还向viewDidLoad
自定义刷新方法添加了代码。问题是我有一个错误,我找不到任何信息......在我的viewDidLoad
我得到“refreshControl
在类型的对象上找不到属性ViewController
”
- (void)viewDidLoad{
[super viewDidLoad];
self.myTableView =
[[UITableView alloc] initWithFrame:self.view.bounds
style:UITableViewStyleGrouped];
self.myTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight;
self.myTableView.delegate = self;
self.myTableView.dataSource = self;
[self.view addSubview:self.myTableView];
UIRefreshControl *refresh = [[UIRefreshControl alloc] init];
refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"Pull to Refresh"];
[refresh addTarget:self action:@selector(refreshView:) forControlEvents:UIControlEventValueChanged];
self.refreshControl = refresh;
}
-(void)refreshView:(UIRefreshControl *)refresh {
refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"Refreshing data..."];
// custom refresh logic would be placed here...
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMM d, h:mm a"];
NSString *lastUpdated = [NSString stringWithFormat:@"Last updated on %@",
[formatter stringFromDate:[NSDate date]]];
refresh.attributedTitle = [[NSAttributedString alloc] initWithString:lastUpdated];
[refresh endRefreshing];
}
我不知道为什么该属性不可用....我错过了什么?
看起来我需要从UITableViewController
我的ViewController.h
文件中继承。如果我已经在UITableView
那里,我如何从两者继承?如果我将代码从 更改为ViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
, ViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource>
则会出现错误:
error: NSInternalInconsistencyException',
reason: '-[UITableViewController loadView] loaded the "ViewController_iPhone" nib but didn't get a UITableView.'