我对Iphone开发很陌生。所以如果我问一些非常简单的问题,请多多包涵。
在我的应用程序中,我有多个 View (即.xib文件)。在单击主 View (CouponWebsiteViewController.Xib)上的按钮时,应用程序应加载包含UITable的第二个 View (BrowseList.Xib),我必须用一些数据填充该UITable。我编写了以下代码来填充BrowseList.m文件中的数据:
- (void) viewDidLoad{
arrayData = [[NSArray alloc] init];
arrayData = [arrayData arrayByAddingObject:@"dfsgdf"];
arrayData = [arrayData arrayByAddingObject:@"aaaaaa"];
self.lblNewScreen.text = [arrayData objectAtIndex:0];
[super viewDidLoad];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [arrayData 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];
}
NSString *cellValue = [arrayData objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;
[tableView setEditing:YES animated:YES];
return cell;
}
但是它没有填充表中的数据,当我调试此代码时,我发现它没有执行cellForRowAtIndexPath方法,而是在调试numberOfRowsInSection和numberOfSectionsInTableView方法。
但是有趣的是,当我在CouponWebsiteViewController.m(即在主 View 上)上编写相同的代码时,它正在填充表中的数据。
关键是该代码在主 View 上可以正常工作,但在其他 View 上不起作用。
任何人都可以告诉我我缺少什么吗,或者可以通过其他任何方式在主 View 之外的其他 View 上填充UITable。
提前致谢。
高拉夫
最佳答案
我不是很积极,但是这里有一些想法。
viewDidLoad
中为时已晚。在将数据放置在表中之后执行ViewDidLoad
。尝试将此代码放入initWithStyle方法或您拥有的任何init
方法中。或者甚至可以将它放在ViewWillAppear
方法中,但是请确保遵循下一个建议。 [self.tableView reloadData]
方法的末尾调用viewDidLoad
。尽管这并不像第一个建议那样理想。 关于UITableView cellforrowatindexpath未调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1939032/