문제

피커의 기본값을 설정하는 방법이 있습니까? 나는 모든 피커에서 마지막으로 선택한 행을 저장하고 시동시 저장된 행을로드 할 수 있기를 원합니다. 지금은이 코드를 찾았습니다.

[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는 자아입니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top