我想根据在 PickerView
View 中所做的选择来填充 TableView
的内容。到目前为止我的代码是:
- (IBAction)findOwnerButtonPressed:(id)sender
{
findShip.hidden = NO;
shipOwners.hidden = NO;
boatsTableView.hidden = YES;
boatOwners = [NSArray arrayWithObjects:@"Owner1",@"Owner2",@"Owner3", nil];
}
- (IBAction)findShipButtonPressed:(id)sender
{
shipOwners.hidden = YES;
findShip.hidden = YES;
boatsTableView.hidden = NO;
}
PickerView 数据源
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return [boatOwners count];
}
- (NSString *)pickerView:(UIPickerView *)pickerView
titleForRow:(NSInteger)row
forComponent:(NSInteger)component
{
return [boatOwners objectAtIndex:row];
}
PickerView 委托(delegate)
- (void)pickerView:(UIPickerView *)pickerView
didSelectRow:(NSInteger)row
inComponent:(NSInteger)component
{
NSString *boatsFromOwner = [boatOwners objectAtIndex:[shipOwners selectedRowInComponent:0]];
boatsForOwner = [NSMutableArray arrayWithObjects:nil];
if ([boatsFromOwner isEqualToString:@"Owner1"]) {
[self.boatsForOwner addObject:@"Titanic"];
}
NSLog(@"%@",boatsFromOwner);
}
TableView 数据源和委托(delegate)
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [boatsForOwner count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"SimpleTableItem";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
cell.textLabel.text = [boatsForOwner objectAtIndex:indexPath.row];
return cell;
}
这应该从 PickerWheel
返回船主公司,并在表格中给我他们的船。此代码在表中不返回任何内容。 PickerWheel
在我选择它时记录“Owner1”。
我在将对象添加到数组的方式、初始化表的方式或将 PickerWheel
结果与单词进行比较方面是否存在错误?
最佳答案
之后
[self.boatsForOwner addObject:@"Titanic"];
您将需要手动刷新您的 tableview.. 所以在那之后做
[_yourTableView reloadData];
我也会像这样初始化你的数组:
boatsForOwner = [NSMutableArray new];
关于ios - 带有来自 NSMutableArray 的数据的 UITableView 返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14265220/