0

약 8 ~ 9 개의 가능한 문자열이있는 UIPicker를 만들었습니다. 어떤 뷰가로드되는지에 따라 UIPicker는 표시되는 문자열에 따라 달라집니다.UIPicker 선택한 텍스트를 읽는 방법.

이것 때문에 내 pickerView : didSelectRow : inComponent 그래서 거기에있는 textvalue 얻을 수있는 경우 사용자가 행을 선택하는 방법이 궁금 해서요.

이 방법은 didselectrow 메서드에서 선택한 문자열 값에 따라 다른 동작을 수행 할 수 있습니다.

현재이 내가 가진 무엇 :

#pragma mark - Picker Delegates 
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 

// get rowString somehow? 
    // ReloadView 
    if ([rowString isEqualToString:@"one Of the Values"]) { 

    } 
    // more if statments here. 
} 

어떤 도움을 주시면 감사하겠습니다.

답변

3

는 그때 비교 해당 행에 대한 데이터 소스의 값을 읽어

NSString *rowString = (NSString *)[self.pickerArray objectAtIndex:row]; 
if ([rowString isEqualToString:@"one Of the Values"]) { 

} 
-3
[pickerView selectedRowInComponent:0]; 
1

@Meda는 당신에게 올바른 대답을했다. 피커와 같은 뷰 객체에 데이터를 저장하면 안됩니다. UIPickerView가 작동하려면 사용자가 직접 셀 뷰를 작성하는 경우 pickerView:titleForRow:forComponent:' (or the method pickerView : viewForRow : forComponent : reusingView : '메서드를 구현해야합니다. `pickerView : titleForRow : forComponent : '메소드는 선택기보기의 구성 요소에있는 각 행에 텍스트를 제공하므로 데이터를 사용할 수 있어야합니다.

따라서 UIPickerView 대리자는 해당 데이터를 사용할 수 있어야합니다. Meda의 게시물은 배열 pickerArray에 저장했다고 가정했습니다.

관련 문제