21 iphone cocoa-touch objective-c uipickerview
我有UIPickerView3个组件填充2 NSMutableArrays(2个组件具有相同的阵列).
一个教程说:
//PickerViewController.m
- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
NSLog(@"Selected Color: %@. Index of selected color: %i", [arrayColors objectAtIndex:row], row);
}
但我希望UIAlertView 在用户触摸UIButton后显示每个组件的选定行.
有没有办法做到这一点?或者我必须使用3隐形UILabels作为缓冲区?
提前致谢.
Dav*_*ong 46
因此,在您的按钮操作方法中,您可以执行以下操作:
- (IBAction) showAlert {
  NSUInteger numComponents = [[myPickerView datasource] numberOfComponentsInPickerView:myPickerView];
  NSMutableString * text = [NSMutableString string];
  for(NSUInteger i = 0; i < numComponents; ++i) {
    NSUInteger selectedRow = [myPickerView selectedRowInComponent:i];
    NSString * title = [[myPickerView delegate] pickerView:myPickerView titleForRow:selectedRow forComponent:i];
    [text appendFormat:@"Selected item \"%@\" in component %lu\n", title, i];
  }
  NSLog(@"%@", text);
}
这将是检索信息的绝对正式方式(通过使用正确的数据源和委托方法),但可能更容易(取决于您的设置),只需抓取所选行,然后直接从模型中提取信息而不是通过委托方法.
| 归档时间: | 
 | 
| 查看次数: | 55612 次 | 
| 最近记录: |