我試圖在我的應用程序中實現UIRefreshControl
。我有一個xib文件,並且我在空的nib文件中添加了一個UITableViewController
,並將refresh屬性設置爲「enabled」。此外,我已將代碼添加到viewDidLoad
和自定義刷新方法。問題是我有一個錯誤,我找不到任何信息....我viewDidLoad
我得到「財產‘refreshControl
’上ViewController
類型的對象未找到」UIRefreshControl問題
- (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.'
這不受支持,可能會在iOS的未來版本中打破。 「UIRefreshControl」唯一支持的方式是使用「UITableViewController」。 –
@ACB,這正是我需要的!感謝數百萬。我希望我能給你更多的道具! – brianhevans
是的,您可以在UIViewController類上使用您手動添加的UITableView和來創建UIRefreshControl。評論的其他答案可能是真實的(它不符合文檔),但這個小小的黑客工作在iOS6上。 –