Tabel opnieuw laden Gegevens bekijken in rootViewController

Ik probeer mijn tableView in rootViewController te herladen nadat ik een nieuw object in de array heb gemaakt dat het vult.

Ik wil in mijn mening het volgende gebruikenDidLoad van rootVIewController:

[tableView reloadDate];

maar ik krijg de foutmelding:

Gebruik van niet-aangegeven identifier "tableView"

Ik denk dat het komt omdat ik de objecttabelView niet heb verklaard tot na de methode viewDidLoad. Dus welke andere opties heb ik om de tafel te verversen?

Bedankt

0
tableView in dit geval is ivar. Ik neem aan dat u de eigenschap tableView heeft. Probeer [self.tableView reloadData]; te schrijven
toegevoegd de auteur beryllium, de bron

1 antwoord

Als u de tabelweergave niet hebt opgegeven, kunt u niet zeggen dat deze opnieuw moet worden geladen. Er is een vraag rond de architectuur van uw toepassing: als u 'rootViewCOntroller' zegt, verwijst dat dan naar de toepassingen RVC? Zo ja, start u de tabel op met een programmatische weergave of via een .xib/outlet?

Als u een XIB gebruikt, moet u uw property outlet [[self tableView] reloadData] bellen.

Als u de tabelweergave programmatisch aanmaakt, moet u deze maken voordat u reload ernaar belt - en in de meeste gevallen wilt u een eigenschap op uw RVC-klasse definiëren die naar die tabel wijstView, zodat u nog steeds [[self tableView] reloadData] aanroepen in plaats van deze rechtstreeks te openen zoals je hebt gedaan in je code.

0
toegevoegd
Sorry voor de rare termen, (nieuw voor obj-c), het zijn de apps waar RVC naar verwijst. Ik start tableView programmatisch aan.
toegevoegd de auteur novicePrgrmr, de bron
Ik denk dat mijn probleem is dat het object in een andere klasse aan de array wordt toegevoegd, dus ik weet niet hoe ik herladenData van de ene klasse voor de andere
toegevoegd de auteur novicePrgrmr, de bron
Dus het klinkt alsof je je tafel in een later stadium opvraagt ​​dan je zou moeten zijn. Is er een motivatie om de tabel niet eerder in uw code te maken? Ik ben ook niet duidelijk over het toevoegen van nieuwe objecten aan de array op de RVCs viewDidLoad ... Ervan uitgaande dat je de tabel op het scherm hebt, moet je, als een nieuw modelobject aan de array wordt toegevoegd, de tabel vertellenView om te herladen op dat moment (of gebruik een [tableView insertRowsAtIndexPaths]) ... opnieuw kan ik je architectuur niet zien, maar tegen de tijd dat iets aan de array wordt toegevoegd, is viewDidLoad allang verdwenen ...
toegevoegd de auteur isaac, de bron
Er zijn een paar manieren om dit te benaderen, maar u kunt delegatie proberen. Definieer een eenvoudig protocol voor elke klasse die uw tabel beheert. Geef een methode als 'modelObjectInserted:'. Conform klassen die mogelijk objecten kunnen invoegen in het protocol dat u hebt gedefinieerd. Wanneer een conformerende klasse een object invoegt, moet deze ook deze gedelegeerde methode aanroepen. Wanneer de methode wordt aangeroepen op uw table view-controller, kunt u actie ondernemen, bijvoorbeeld reload laden of insertCellForRowAtIndexPath ...
toegevoegd de auteur isaac, de bron