UIPickerView에서 선택한 값을 얻는 방법
UIDatePicker를 사용하면 다음과 같은 것을 사용할 수 있습니다.
NSDate *myDate = picker.date;
하지만 내 관점에서 UIPickerView를 사용하고 있습니다. 비슷한 방법으로 값을 선택할 수 있습니까? 아니면 didSelectRow 유형의 메소드를 설정해야합니까?
업데이트 :이 코드는 1 개의 구성 요소가있는 선택기에서 작동합니다.
NSInteger row;
NSString *weightSelected;
row = [repPicker selectedRowInComponent:0];
weightSelected = [pickerArray objectAtIndex:row];
두 가지 구성 요소로 내 선택기 에이 코드를 지 쳤지 만 멈췄습니다.
NSInteger row1, row2;
NSString *weightSelected1;
NSString *weightSelected2;
row1 = [repPicker selectedRowInComponent:0];
row2 = [repPicker selectedRowInComponent:1];
weightSelected1 = [pickerArray objectAtIndex:row1];
weightSelected2 = [pickerArray objectAtIndex:row2];
NSString *weightSelected = [NSString stringWithFormat:@"%@.%@", weightSelected1, weightSelected2];
다음과 같은 방법으로 얻을 수 있습니다.
NSInteger row;
NSArray *repeatPickerData;
UIPickerView *repeatPickerView;
row = [repeatPickerView selectedRowInComponent:0];
self.strPrintRepeat = [repeatPickerData objectAtIndex:row];
사용자 정의 ViewController 클래스에서 pickerView와 동일한 함수를 사용하여 선택기의 모든 섹션에서 선택한 항목의 텍스트를 가져올 수 있습니다.
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
선택한 항목 사용
[myPickerView selectedRowInComponent:0]
따라서 myPickerView의 두 번째 섹션에서 현재 선택된 값을 사용하여 사용자 지정 셀의 레이블 텍스트를 설정하려면 (아마도보기 컨트롤러의 속성)
[cell.label setText:[self pickerView:myPickerView titleForRow:[myPickerView selectedRowInComponent:1] forComponent:1]];
각 섹션에 대해 : 1s를 : 2s 등으로 변경하십시오.
이것이 내가 한 일입니다.
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
selectedEntry = [allEntries objectAtIndex:row];
}
은 selectedEntry
이며 NSString
선택기보기에서 현재 선택된 항목을 보유합니다. 나는 Objective C를 처음 접했지만 이것이 훨씬 쉽다고 생각합니다.
다음 방법을 사용하여 주어진 구성 요소에 대해 선택한 행에 액세스 할 수 있습니다.
- (NSInteger)selectedRowInComponent:(NSInteger)component
그렇지 않으면 위임 함수를 구현하는 것이 유일한 다른 옵션입니다.
didSelectRow
a UIPickerView
는 임의의 수의 구성 요소를 가질 수 있으므로 delegate 메서드 를 사용해야합니다 . "objectValue"또는 이와 유사한 것은 없습니다. 전적으로 귀하에게 달려 있습니다.
응용 프로그램과 동일한 방식으로 선택기의 대리인에게 문의해야합니다. 내 UIPickerViewDelegate 내에서 수행하는 방법은 다음과 같습니다.
func selectedRowValue(picker : UIPickerView, ic : Int) -> String {
//Row Index
let ir = picker.selectedRow(inComponent: ic);
//Value
let val = self.pickerView(picker,
titleForRow: ir,
forComponent: ic);
return val!;
}
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
weightSelected = [pickerArray objectAtIndex:row];
}
이것은 내 대답입니다
- (IBAction)Result:(id)sender
{
self.statusLabel.text = DataSource[[pickerViewTool selectedRowInComponent:0]];
}
참고 URL : https://stackoverflow.com/questions/5725580/how-to-get-selected-value-from-uipickerview
'program tip' 카테고리의 다른 글
Xcode를 버전 10.3 (10G8)으로 업데이트 한 후 스토리 보드가 손상되고 앱이 더 이상 실행되지 않습니다. (0) | 2020.10.21 |
---|---|
Lisp 또는 Scheme으로 웹 프로그래밍을 어떻게 할 수 있습니까? (0) | 2020.10.21 |
Python threading.timer- 'n'초마다 함수 반복 (0) | 2020.10.21 |
AngularJS에서 $ watching을 어떻게 중지합니까? (0) | 2020.10.21 |
CMake를 사용하여 소스 디렉터리에서 바이너리 디렉터리로 파일 복사 (0) | 2020.10.21 |