0

我想要做的是使用选择器视图中的选择来填充另一个视图控制器上的表视图。用户在选择器视图上进行选择,然后点击一个按钮转到下一个视图控制器,该控制器根据选择器视图的选择在 tableview 中显示不同的数组。

我对编码很陌生,所以我不知道我的代码是否接近正确。无论如何,这是我尝试过的:

@interface HomeViewController ()

@end

@implementation HomeViewController{

}

@synthesize tableview;

- (void)viewDidLoad
{
[super viewDidLoad];

_pickerarray = [[NSArray alloc] initWithObjects:@"1",@"2",@"3", nil];
_array1 = [[NSArray alloc] initWithObjects:@"1980",@"1981",@"1982", nil];
    _array2 = [[NSArray alloc] initWithObjects:@"1983",@"1984",@"1985", nil];
    _array3 = [[NSArray alloc] initWithObjects:@"1986",@"1987",@"1988", nil];

}

- (void)didReceiveMemoryWarning
{
[self setPicker:nil];
[super didReceiveMemoryWarning];
}

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    return _pickerarray.count;
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    return [_pickerarray objectAtIndex:row];
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
switch (row) {
    case 0:

        - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        return [_array1 count];
    }

        - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *simpleTableIdentifier = @"cell";
        UITableViewCell *cell = [tableview dequeueReusableCellWithIdentifier:simpleTableIdentifier];
        if (cell == nil) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
        }

        cell.textLabel.text = [_array1 objectAtIndex:indexPath.row];
        return cell;
    }

        break;
        case 1:
        - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        return [_array2 count];

    }

        - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *simpleTableIdentifier = @"cell";
        UITableViewCell *cell = [tableview dequeueReusableCellWithIdentifier:simpleTableIdentifier];
        if (cell == nil) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
        }

        cell.textLabel.text = [_array2 objectAtIndex:indexPath.row];
        return cell;
    }
        break;
        case 2:
        - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        return [_array3 count];

    }

        - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *simpleTableIdentifier = @"cell";
        UITableViewCell *cell = [tableview dequeueReusableCellWithIdentifier:simpleTableIdentifier];
        if (cell == nil) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
        }

        cell.textLabel.text = [_array3 objectAtIndex:indexPath.row];
        return cell;
    }

    default:
        break;
}
}

@end

在代码行

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

我收到一个语义问题,说明“使用未声明的标识符 'tableview'”

我真的很感激任何反馈,因为我说我很新,我什至不知道我是否以正确的方式去做,所以如果有人能引导我朝着正确的方向前进,那就太好了!

4

1 回答 1

0

作为新手,我建议您使用免费的 Sensible TableView 框架等 tableview 框架。这些框架将能够轻松实现几乎开箱即用的此类任务。在我的项目中为我节省了大量时间。

于 2013-07-15T19:46:25.527 回答