【发布时间】:2013-01-10 18:53:48
【问题描述】:
我想根据PickerView 视图中的选择填充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 委托
- (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 数据源和委托
- (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 结果与单词进行比较时是否存在错误?
【问题讨论】:
-
你有没有实例化过boatsForOwner?
-
是的,在 .h 中并合成
-
不,这不是实例化——实例化意味着你接受的答案中的 alloc init。
-
哦好吧对不起我不知道
标签: ios objective-c uitableview uipickerview