0

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

我在同一页面上有一个按钮可以对选定的行值(UIPicker 值)执行。如何在 Button.How to give options in Button.to select the Rows values which are take fromUIPicker

- (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并选择选项。

在 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"];


}
4

1 回答 1

1
  1. 您需要修改 tableView 的数据源。您可以获取字典数组(带有键 leftTitle 和 rightTitle)。
  2. 您需要使用委托方法 valueSelected 在 Picker1 和 Picker2 中实现协议:
  3. 使用 tableView 在控制器中实现委托。
  4. 您需要保存所选行的全局索引。在推动选择器时将委托设置为自我。
  5. 当您点击选取器控制器中的按钮时,调用 valueSelected: 委托并传递选取器中选择的值。
  6. 在您的带有 tableView 的控制器中,您已经实现了协议方法,获取值并保存在数据源中(作为具有选定索引的字典中键“rightTitle”的值)。
  7. 重新加载表。
于 2012-12-10T07:02:57.580 回答