使用UIPicker选项的UITableView行选择

时间:2012-12-10 06:28:16

标签: iphone ios uitableview uipickerview

我有一个tableview有5行,当我选择一行时,它在下一页打开一个UIPickerView来选择选项,同样的事情发生在5行。现在我想要,Pickervalue ,它应该反映在我选择的特定行(右侧)

我在同一页面上有一个按钮,用于对所选行值(UIPicker值)执行。如何在Button.to中选择从UIPicker获取的行值

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    if(indexPath.row==0){

        Picker1 *logInController = [[Picker1 alloc] init];

    [[self navigationController] pushViewController:logInController animated:YES];
    }

    if(indexPath.row==1){

        Picker2 *logInController = [[Picker2 alloc] init];

        [[self navigationController] pushViewController:logInController animated:YES];
    }
}

如上所述我打开了UIPIcker并选择了选项。

IN PICKER1.m

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {

    // update label text to show selected option

    NSString* string=[NSString stringWithFormat:@"you are selected %@",[list objectAtIndex:row]];

    label.text=string;

}



- (void)viewDidLoad

{      
    [super viewDidLoad];

    list =[[NSMutableArray alloc]init];
    [list addObject:@"GPS"];
    [list addObject:@"NONE"];


}

1 个答案:

答案 0 :(得分:1)

  1. 您需要修改tableView的数据源。你可以使用一系列词典(使用leftTitle& rightTitle键)。
  2. 你需要在Picker1&amp ;;中实现协议。 Picker2与委托方法valueSelected:
  3. 使用tableView在控制器中实现委托。
  4. 您需要保存所选行的全局索引。在推送拣货员的同时将代表设置为自我。
  5. 当您点击选择器控制器中的按钮时,调用valueSelected:delegate&传递值在选择器中选择。
  6. 在您的控制器中使用tableView,您已经实现了协议方法,获取值并保存在数据源中(作为具有所选索引的字典中的键“rightTitle”的值)。
  7. 重新加载表。