2012-01-17 3 views
2

セグメントコントロールを使用して、新しいデータ配列で2つのUIPickerViewsをリロードしようとしています。UIPickerViewがスクロールするまでリロードしない

私の問題は、ピッカーの上または下にスクロールするまで新しい配列が表示されないことです(古いデータは一度表示されなくなります)。私はreloadAllComponentsメソッドを使って無駄にしようとしました。ここでのコードは次のようになります。

//Segment Control 
-(IBAction)unitType:(id)sender { 
    if([sender selectedSegmentIndex]==0){ 
     NSLog(@"unitType change 1"); 
     NSLog(@"before values = %@",units); 
     [units removeAllObjects]; 
     [units addObject:@"in"]; 
     //etc. 
     [self.inputUnits reloadAllComponents]; 
     NSLog(@"current values = %@",units); 
    }else { 
     NSLog(@"unitType change 2"); 
     NSLog(@"before values = %@",units); 
     [units removeAllObjects]; 
     [units addObject:@"in^3"]; 
     //etc. 
     [self.inputUnits reloadAllComponents]; 
     NSLog(@"current values = %@",units); 
    } 
} 

IBは、デリゲートとデータソースの両方のファイルの所有者まで有線2 UIPickerViewsを持っています。

+0

"NSLog(@"%@ "、self.inputUnits);' "'(null) '? –

+0

はい。それは正しいです –

+3

NSLogの力を見てください! – NJones

答えて

5

inputUnitsプロパティにUIPickerViewを接続していません。したがって、-reloadAllComponentsへの呼び出しはnilに送信され、pickerViewが何か新しいものを表示したいときにのみ更新されます(スクロール時に行われます)。

関連する問題