Wie erstelle ich UIViewController mit Xib-Datei?

Sorry, wenn diese Frage schon beantwortet wurde, aber ich kann nicht finden, eine Antwort.

Ich bin momentan dabei eine app in der ich eine UITableViewController und wenn die accessorybutton in der rechten Seite eine Zelle ausgewählt ist, wird eine neue Instanz eines UIViewController erstellt werden sollte, enthält die Schnittstelle gefunden .xib-Datei. Die neue UIViewController wird dann geschoben werden auf dem stack und angezeigt.
Meine Frage ist wie erstelle ich die neue UIViewController aus einer vorhandenen .xib-Datei?

Dies ist, was ich bisher versucht habe:
In Xcode: die Datei -> Neue Datei -> Cocoa Touch Class aus -> UIViewController subClass.
Checkbox "UITableViewController subclass" deaktiviert.
Checkbox "With XIB for user interface" aktiviert ist.

Dieser erstellt eine .m, ein .h-und eine .xib-Datei. Ich habe einen Benutzer erstellt-Schnittstelle in der "Ansicht" in der .xib-Datei. Die Auswahl von "File' s owner" im interface builder zeigt die neu erstellte UIViewController in "Class Identity".

Code:

In Der DetailViewController.m (die neue UIViewController):

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
     self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
     return self;
}

In SubViewController.m (die alten UITableViewController):

-(void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath{
     DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
     //Exception thrown at line below
     [self.navigationController pushViewController:detailViewController animated:YES];
     [detailViewController release];
}

Vergessen zu erwähnen, dass die .xib-Datei den Namen "DetailViewController.xib".

Den code kompiliert einwandfrei, aber wenn ich es im simulator aus und drücken Sie eine accessorybutton es beendet due to uncaught exception.

Was bin ich?

Vielen Dank im Voraus

In Xcode, legen Sie einen Haltepunkt für objc_exception_thrown also GDB wird angehalten, wenn die exception geworfen wird, so können Sie die Stapel-Ablaufverfolgung, und einige insight-Informationen, die Sie wahrscheinlich brauchen.
Auch in der Konsole sollte man sich ein Protokoll über die nicht erfassten Ausnahme. Hinzufügen, dass auf Ihre Frage, wie es in der Regel bietet einen wichtigen Anhaltspunkt darüber, was falsch gelaufen ist.
Ok, ich bin neu in Xcode, so werde ich in diesem Blick. Aber es sollte so funktionieren? Ich bin nicht Weg? Die initWithNibName Methode und alle, die korrekt zu sein scheint?

InformationsquelleAutor Isak T. | 2010-01-15

Schreibe einen Kommentar