2010-07-08 13 views
13

Ich ändere Komponenten (insbesondere die Anzahl und Farbe der Komponenten) in einem UIPickerView, die ich pickerOne nennen, so dass nach den Änderungen vorgenommen haben, nenne ich:UIPickerView reload

[pickerOne reloadData]; 

und es scheint jedoch arbeitet perfekt, ich bin eine Kompilierung Warnung erhalten:

warning: 'UIPickerView' may not respond to '-reloadData' 

Obwohl dies scheint zu funktionieren, es ist etwas anderes, das ich verwenden sollte Daten neu zu laden?

Dank

+0

Ich glaube, die Verwirrung stammte von UITableView, die reloadData hat, aber UIPickerView nicht (wie in den Antworten anderer unten). –

Antwort

33

Ich glaube, Sie verwenden sollten:

reloadComponent:

oder

reloadAllComponents:

+0

yup, keine hässliche Warnung über meinen Code und funktioniert genauso gut. Vielen Dank –

+1

Nur eine Anmerkung - reloadAllComponents akzeptiert kein Argument. Also sollte es wahrscheinlich lesen: reloadAllComponents stattdessen. –

4

Sie sollten anrufen reloadComponent: oder reloadAllComponents: werden.

Es kann eine private reloadData unter den Abdeckungen verwendet werden, aber es ist nicht Teil der öffentlichen API und sollte daher nicht verlassen werden.

+0

2 identische Antworten innerhalb von 3 Minuten, ich denke, ich hätte das wissen müssen. Vielen Dank. –

0

Ich denke, Sie sollten verwenden: oder reloadAllComponents.

Aber diese Methoden sind nutzlos, wenn Sie UIPickerViewDalegate und UIPickerViewDataSource zu Dateibesitzer verbinden.

+0

Willkommen bei Stack Overflow. Diese Frage wurde bereits mit denselben Informationen beantwortet, die Sie hier geschrieben haben. Wenn Sie ihren Antworten etwas hinzufügen möchten, können Sie es in einen Kommentar darunter einfügen. :) – Emil