Momentan arbeitet man an einer App, um Züge mit CoreData zu entdecken. Grundsätzlich wird jeder Zug mit einem entsprechenden Sichtungssatz gespeichert. Wenn ein Benutzer einen Zug sieht, protokolliert er eine Sichtung und diese Sichtung wird an eine Seriennummer geknüpft (nur grundlegende Datenbeziehungen)UIPickerView lädt keine Zeilen
Ich versuche, eine UIPickerView
mit Seriennummern zu bevölkern, aber ich laufe in einige Schwierigkeiten. Ich plane, diese spezifische PickerView mehrere Male zu verwenden, so dass es eine eigene Klasse hat und nicht in ViewController implementiert ist.
Ich habe die Delegat und dataSource korrekt festgelegt, aber die PickerView wird nie aufgefüllt. Vom NSLog
und printf
-Code, der in jeder Funktion ist, kann ich sagen, dass titleForRow
nie aufgerufen wird, und keiner ist numberOfRowsInComponent
Hier ist mein Code für die UIPickerView
Klasse:
-(id)init
{
//init super class.
self = [super init];
//get allocate array reader (TrainSightingReaderWriter) then set the array that this picker will be getting data from.
[self setArrayReader:[[TrainSightingReaderWriter alloc] init]];
[self setArray: [[self arrayReader] getTrainSerialArray]];
NSLog(@"INIT PickerView");
//return this object.
return self;
}
-(int)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
printf("At component counter\n");
return 1;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
printf("At counter. %d is output\n", _array.count);
return _array.count;
}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
NSLog(@"Returning a value.");
return [self array][row];
}
Viewcontroller Code:
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"We have made it to the AddSightVC.");
TrainPicker * mypicker;
mypicker = [[TrainPicker alloc]init];
//ISSUES
_trainPickerScroller.delegate = mypicker;
_trainPickerScroller.dataSource = mypicker;
[_trainPickerScroller reloadAllComponents];
[_trainPickerScroller reloadInputViews];
// Do any additional setup after loading the view.
}
Was ist 'TrainPicker'? Wo initialisierst du '_trainPickerScroller'? –
'TrainPicker' ist meine Klasse für das' UIPickerView' wie folgt: '@interface TrainPicker: UIPickerView'. '_trainPickerScroller' ist der Ausgang zum Picker selbst. –
Swemoph
Das scheint seltsam, Sie haben 2 Picker-Ansichten, eine, die nur als Datenquelle verwendet wird? Wie auch immer, ich schätze, das Problem ist, dass du keinen starken Bezug zu "mypicker" hast und es wird freigegeben. –