在iOS7和x2B中使用多个UIPickerViews;

在iOS7和x2B中使用多个UIPickerViews;,ios,objective-c,uitableview,uipickerview,Ios,Objective C,Uitableview,Uipickerview,我的目标是在屏幕上有三个不隐藏的PickerView。用户使用它们,然后单击UIButton,该按钮将pickerview titles中的三个标题添加到UITableView单元格中 我这辈子都没法让它工作。下面的代码是我已经玩了大约2到3个小时了。。。谁能帮我弄清楚为什么它不起作用 特别是我的错误,当我单击add按钮时,没有向tableview添加任何内容 //UITABLEVIEW DELEGATE METHODS #pragma mark Tableview methods - (NS

我的目标是在屏幕上有三个不隐藏的PickerView。用户使用它们,然后单击UIButton,该按钮将pickerview titles中的三个标题添加到UITableView单元格中

我这辈子都没法让它工作。下面的代码是我已经玩了大约2到3个小时了。。。谁能帮我弄清楚为什么它不起作用

特别是我的错误,当我单击add按钮时,没有向tableview添加任何内容

//UITABLEVIEW DELEGATE METHODS
#pragma mark Tableview methods

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (tableView == workaddedTable)
{
    return [tableviewArray count];
}
else
{
    //INSERT CODE HERE FOR SECOND TABLEVIEW AND ERASE THE FOLLOWING LINE
    return 2;
}
}

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

if(tableView.tag == 0)
{
    static NSString *CellIdentifier = @"workCell";
    WorkPerformedCell *cell = (WorkPerformedCell *)[workaddedTable dequeueReusableCellWithIdentifier:CellIdentifier];
    cell = [workaddedTable dequeueReusableCellWithIdentifier:CellIdentifier];

    workPerformedObject *tempOrder = [tableviewArray objectAtIndex:indexPath.row];
    cell.inputSystem.text = tempOrder.systemAdded;
    cell.inputsubsystem.text = tempOrder.subsystemAdded;
    cell.inputProcedure.text = tempOrder.procedureAdded;

    return cell;
}
else
{
    //DELETE THE FOLLOWING THREE LINES, DEFINE CELL REUSE IDENTIFIER IN STORYBOARD, CREATE A CUSTOM CELL CLASS AND DESIGN IT IN STORYBOARD, ADD LABELS IN CUSTOM CELL IN STORYBOARD BUT DEFINE THEM IN YOUR CELL CLASS, CREATE AN NSMUTABLEARRAY AND A CUSTOM OBJECT CLASS TO HOLD SO YOU CAN REFRESH DATA AND UPDATE LABELS
    static NSString *CellIdentifier = @"workCell";
    WorkPerformedCell *cell = (WorkPerformedCell *)[workaddedTable dequeueReusableCellWithIdentifier:CellIdentifier];
    cell = [workaddedTable dequeueReusableCellWithIdentifier:CellIdentifier];
    return cell;
}
}


    //PICKERVIEW DELEGATE METHODS
#pragma mark Pickerview methods
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    //One column
    return 1;
}

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    //set number of rows
    if (pickerView == _systemPicker)
    {
        return systemArray.count;
    }
    else if (pickerView == _subsystemPicker)
    {
    return subsystemArray.count;
    }
    else
    {
        return procedureArray.count;
    }
}

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    //set item per row
    //set number of rows
    if (pickerView == _systemPicker)
    {
        return [systemArray objectAtIndex:row];
    }
    else if (pickerView == _subsystemPicker)
    {
        return [subsystemArray objectAtIndex:row];
    }
    else
    {
        return [procedureArray objectAtIndex:row];
    }
}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    if(pickerView == _systemPicker)
    {
        systemAdded = [systemArray objectAtIndex:row];
    }
    else if(pickerView == _subsystemPicker)
    {
        subsystemAdded = [subsystemArray objectAtIndex:row];
    }
    else
    {
        procedureAdded = [procedureArray objectAtIndex:row];
    }
}  

//BUTTON METHODS FOR BLOCK 3
- (IBAction)buttonPressed:(id)sender
{
    _tempworkPerformedObject.systemAdded = [self pickerView:self.systemPicker titleForRow:1 forComponent:0];;
    _tempworkPerformedObject.subsystemAdded = [self pickerView:self.subsystemPicker titleForRow:1 forComponent:0];;
    _tempworkPerformedObject.procedureAdded = [self pickerView:self.procedurePicker titleForRow:1 forComponent:0];;
    [tableviewArray addObject:_tempworkPerformedObject];

    [self refreshData];
}

-(void) refreshData
{
    [workaddedTable reloadData];
}

除了按下
按钮中的
\u tempworkPerformedObject
外,所有内容看起来都井然有序

这个对象在哪里实例化?你能提供那个代码吗

看起来您正在重用同一对象并更改其属性,以便添加到数组中。如果是这种情况,那么最终将更改数组中每个元素的属性(因为它们都指向同一个对象)

为了使其正常工作,您需要在
按钮按下:
中创建一个新对象,并将其添加到数组中