我正在尝试创建一个读取json feed的iphone应用程序,但我在更新TableView时遇到了一些麻烦。
这是我的TableViewController头文件:
@interface LiveNewsController : UITableViewController <UITableViewDelegate, UITableViewDataSource>{
NSMutableData *responseData;
NSMutableArray *articleArray;
UITableView *tblView;
}
-(void) refreshPressed: (id)sender;
@property (nonatomic, retain) IBOutlet UITableView *tblView;
@end
这些是我的TableViewController实现文件的 部分 部分:
@implementation LiveNewsController
@synthesize tblView;
-(id) init {
if(self = [super init])
{
self.title = @"Live News";
}
return self;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSLog(@"I am here %d",[articleArray count]);
return [articleArray count];
}
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
NSLog(@"cellForRowAtIndexPath called. Data size %d", [articleArray count]);
NSUInteger row = [indexPath row];
cell.textLabel.text = [articleArray objectAtIndex:row];
return cell;
}
-(void) refreshPressed: (id)sender
{
NSLog(@"Reload Pressed. Data size: %d", [articleArray count]);
[tblView reloadData];
}
以下是带有连接的.xib文件的屏幕截图:
所以主要的想法如下:
numberOfRowsInSection和CellForRowAtIndexPath仅在视图加载时被调用一次,但是当我按下重新加载按钮时没有任何反应。
我检查了tblView,它是 nil 。我做了一些研究并读到这通常是由.xib文件中的一些错误连接引起的,但我已经检查了三次,我似乎无法查明问题。
感谢任何帮助,
谢谢!
答案 0 :(得分:2)
您不需要声明UITableView
tblView ,UITableViewController
已经有一个(因此也是所有子类)。
试试[self.tableView reloadData];
。