无法使用选择器视图选择来填充tableview

时间:2013-07-15 04:55:36

标签: uitableview nsarray uipickerview

我想要做的是使用pickerview中的选择来填充另一个视图控制器上的tableview。用户在选择器视图上进行选择,然后点击一个按钮转到下一个视图控制器,该控制器根据选择器视图选择在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'”

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

1 个答案:

答案 0 :(得分:0)

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