기본 피커 가치 iPhone
-
06-07-2019 - |
문제
피커의 기본값을 설정하는 방법이 있습니까? 나는 모든 피커에서 마지막으로 선택한 행을 저장하고 시동시 저장된 행을로드 할 수 있기를 원합니다. 지금은이 코드를 찾았습니다.
[settingsPagePicker selectRow:3 inComponent:0 animated:YES];
사용자가 피커를 두드릴 때만 작동합니다. 앱이 처음로드 될 때 작동해야합니다. 이 코드를 ViewDidload에 넣으면 앱이 충돌합니다. 누구든지 내 코드에 적절한 장소를 어디에 두어 작동하게하는지 아는 사람이 있습니까?
시간 내 주셔서 감사합니다!
해결책
Selectrow : Incomponent : 애니메이션을 호출하기 전에 SettingspagePicker의 데이터 소스를 확인 했습니까?
데이터 소스에 대한 데이터를 어떻게로드하고 있습니까? 먼저 ViewDidload에서 데이터 소스를 초기화 한 다음 사용 가능한 데이터가 있다는 것을 알게되면 Selectrow를 호출 할 수 있습니다.
업데이트 : 코드가 어떻게 생겼는지 또는 그와 비슷한 것입니다.
- (void)viewDidLoad
{
[super viewDidLoad];
pickerDataSource = [[NSMutableArray alloc] init];
[pickerDataSource addObject:@"Item 01"];
[pickerDataSource addObject:@"Item 02"];
[pickerDataSource addObject:@"Item 03"];
[pickerDataSource addObject:@"Item 04"];
// Might want to move this to -viewWillAppear:animated
[settingsPagePicker selectRow:3 inComponent:0 animated:YES];
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if (pickerView == settingsPagePicker)
{
return [pickerDataSource objectAtIndex:row];
}
return @"";
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
if (pickerView == settingsPagePicker)
{
return [pickerDataSource count];
}
return 0;
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView
{
return 1;
}
다른 팁
여기 내 수업의 몇 가지 방법.
- (void)viewDidLoad { [super viewDidLoad]; currentNumbersOfComponents = 1; //[picker selectRow:2 inComponent:0 animated:NO]; }
- (void) viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
[picker selectRow:2 inComponent:0 animated:YES];
}
#pragma mark picker view data source methods
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return currentNumbersOfComponents;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return 5;
}
picker.datasource는 자아입니다
제휴하지 않습니다 StackOverflow