سؤال

هل هناك طريقة لتعيين قيمة افتراضية لمنقار؟ I حفظ الصف المحدد الأخير من كل جامعي وأريد أن أكون قادرة على ملتقطي تحميل تلك الصفوف المحفوظة في البدء. اعتبارا من الآن لقد وجدت هذا الرمز:

[settingsPagePicker selectRow:3 inComponent:0 animated:YES];

وكان يعمل ولكن فقط عندما ينقر المستخدم لاقط. أنا في حاجة إليها للعمل عندما يتم تحميل التطبيق أولا. لو أنني وضعت هذا الرمز في viewDidLoad التطبيق سوف تعطل. أحد يعرف أين المكان المناسب لوضع هذا في قانون بلدي والعمل على انجاحه؟

وشكرا لك على وقتك!

هل كانت مفيدة؟

المحلول

هل راجعت مصدر البيانات لsettingsPagePicker قبل استدعاء -selectRow: inComponent: الرسوم المتحركة للتأكد من وجود بيانات متاحة في ذلك مؤشر (3 في نموذج التعليمات البرمجية الخاصة بك)

وكيف حالك تحميل البيانات لمصدر البيانات؟ يمكنك تهيئة مصدر البيانات في viewDidLoad أولا ومن ثم استدعاء selectRow بمجرد أن تعرف أن هناك بيانات متاحة.

وUPDATE: هنا هو ما ينبغي أن ننظر التعليمات البرمجية مثل أو شيء من هذا القبيل:

- (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