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
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie nicht haben, um Besetzung dieser:
Sind Sie immer eine compiler-Warnung, wenn Sie nicht?
InformationsquelleAutor mr-sk
War der Fehler in der neuen Ansicht " ich habe versucht, um anzuzeigen. In der .xib-Datei, die ich eingefügt hatte eine MKMapView, und wenn ich entfernt es funktioniert alles perfekt.
Nochmals vielen Dank für die Hilfe debug!
und btw, wenn Sie möchten, eine MKMapView sollten Sie mit dem MapKit-framework
InformationsquelleAutor Isak T.