Tut UICollectionViewCell haben eine viewWillAppear oder sowas kann ich die übergabe von Daten zu
Ich habe in meinem view-controller:
- (UICollectionViewCell *) collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
CellSubclass *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath];
cell.dataObjects = data;
return cell;
}
In meinem CellSubclass.m ich habe:
- (id) initWithFrame:(CGRect)frame
{
//You can call initWithFrame: method here as our base constructor of the UIView super class
self = [super initWithFrame:frame];
if (self)
{
//call functions that need access to data but data is nil
}
return self;
}
So, in der lifecycle-meiner Ansicht-controller, der CellSubclass wird sofort aufgerufen, bevor die Daten bereit sind. Gibt es eine Funktion wie viewWillAppear oder etwas, dass ich übergeben Sie die Daten zu? Wie kann ich eine Funktion aufrufen, die aus meiner Sicht anderen controller als die initWithFrame? Kann ich übergeben Sie die Daten in anderer Weise?
Dank.
- Es klingt besser, verwenden reloadCollectionView-Methode in den Abschluss-block, die fordert, wenn Sie Ihre Daten abrufen erfolgt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Klingt es besser, verwenden Sie Ihre eigenen konfigurieren der Methode für die Zelle, in cellForItemAtIndexPath.
UICollectionViewCell nicht haben sowas, aber das ist eine Unterklasse von UIView, und man didMoveToSuperview.
Ich benutze es in der Produktion für einige spezifische Fälle, aber trotzdem hilft es, für einige schnelle debugging auch.
https://developer.apple.com/documentation/uikit/uiview/1622433-didmovetosuperview
Sollten Sie wieder die Anzahl der Zellen, die als
0
wenn Sie haben noch keine Daten, zu zeigen. Wenn Sie die Daten bereit, nur der reload-Kollektion ansehen.In Ihre datasource-Methoden
Können sagen, Sie haben einen asynchronen Netzwerk aufrufen, und es hat Daten zurückgegeben.
In der Abschluss-block nur neu laden Ansicht Sammlung.
UICollectionView