【发布时间】:2012-10-09 17:11:13
【问题描述】:
我正在尝试在我的应用程序中实现UIRefreshControl。我有一个 xib 文件,我在空的 nib 文件中添加了一个UITableViewController,并将刷新属性设置为“启用”。我还向viewDidLoad 添加了代码和自定义刷新方法。问题是我有一个错误,我在我的viewDidLoad 中找不到任何关于...的信息
- (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];
}
我不知道为什么该属性不可用....我错过了什么?
看起来我需要在我的ViewController.h 文件中从UITableViewController 继承。如果我已经拥有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.'
【问题讨论】:
标签: iphone objective-c ios uirefreshcontrol