Lange Rede kurzer Sinn, ich möchte eine XIB-Datei erstellen, wo es enthält:UITableView und seine Zelle in einer xib Datei
Eine Ansicht. In dieser Ansicht hat es viele Dinge und eine TableView. (verbundene Datenquelle, Delegieren an den Besitzer der Datei). Diese Ansicht ist die Hauptansicht der XIB-Dateien.
Benutzerdefinierte Zelle, (als Prototypzelle von tableView verwenden, da XIB Prototyp tableView nicht unterstützt).
Wie kann ich beides erreichen? Auch ich möchte wissen, dass das gleiche gilt für UICollectionView.
Ich hatte beide erstellt, laden Sie es auf die Hauptansicht (die Hauptansicht ist im Haupt Storyboard). Die Tabellenansicht lädt die benutzerdefinierte Zelle jedoch nicht wie erwartet. Die Zelle ist nur leer, sieht nicht so aus, wie sie in der Feder entworfen wurde.
EDIT 1
Hier ist, wie ich mich registrieren um die Spitze in der Hauptansicht in Storyboard:
- (UIView *)buildViewFromViewControllerClass:(Class)viewControllerClass
{
id viewController = [[viewControllerClass alloc] initWithNibName:NSStringFromClass(viewControllerClass) bundle:nil];
[viewController view].frame = self.containerView.bounds;
[self addChildViewController:viewController];
return [viewController view];
}
ich viele Viewcontrollers, so dass ich herausfinden, dass dies der beste Weg ist, VC hinzufügen .
Über die Feder in obiger Beschreibung, verwende ich nur regelmäßige Initialisierung:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// init cell
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CustomCell"];
if (!cell) {
cell = [[PaymentCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CustomCell"];
}
return cell;
}
Wenn in der Ansicht Load-Methode tat, ich die Feder in die Tableview registrieren, es in [tableView dequeueResuableCell...]
abstürzen werden. Der registrierte Code:
- (void)viewDidLoad
{
[super viewDidLoad];
// [self.tableView registerNib:[UINib nibWithNibName:self.nibName bundle:nil]
// forCellReuseIdentifier:@"CustomCell"];
// I'm commenting it, because it caused crash.
}
Crash-Nachricht:
*** Beenden app aufgrund nicht abgefangene Ausnahme 'NSUnknownKeyException' Grund: ‚[ setValue: forUndefinedKey:]: Diese Klasse ist nicht Schlüssel Wert Codierung kompatibel für die SchlüsseltabelleView.
Was habe ich hier falsch gemacht? Hier ist ein Bild, wie ich die Feder entworfen:
Wie Sie sehen können, die Hauptansicht des Datei Eigentümer an den mainView
verbunden ist, wo es die Tableview enthalten. Die customCell ist nur eine benutzerdefinierte Zelle, die in derselben Datei (der .m-Datei) definiert ist.
könnten Sie den Code hinzufügen, wie Sie die Zelle hinzufügen und Ihre Feder registrieren –
Hier ist ein Beispiel, wie Sie eine Nib registrieren '[self.tableView registerNib: [UINib nibWithNibName: @" MyCell "bundle: nil" forCellReuseIdentifier: @ "MyCell"]; ' –
Bitte schauen Sie sich * Edit 1 * – Eddie