2009-07-10 11 views
0

Ich habe den folgenden Code in meiner app bekam eine modale Ansicht anzuzeigen:Unerwünschte Bearbeitungsschaltfläche in meiner Navigationsleiste?

InfoTableViewController *infoTableViewController = [[[InfoTableViewController alloc] initWithNibName:nil bundle:nil] autorelease]; 
infoTableViewController.title = @"Pirateometer"; 
infoTableViewController.navigationItem.rightBarButtonItem = 
    [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone 
     target:self action:@selector(dismissInfo)] autorelease]; 

navController = [[UINavigationController alloc] initWithRootViewController:infoTableViewController]; 
[self presentModalViewController:navController animated:YES]; 
[navController retain]; 

Allerdings, wenn ich laufen, statt der Fertig-Taste auf der rechten Seite meiner Navigationsleiste Ich habe eine Schaltfläche Bearbeiten. Wenn ich ".RightBarButton" in ".leftBarButton" ändere, erscheint meine "Done" -Schaltfläche wie erwartet auf der linken Seite, aber die Schaltfläche "Edit" befindet sich wieder auf der rechten Seite.

Soll ich diese unerwünschte Schaltfläche "Bearbeiten" im Code speziell entfernen, oder mache ich etwas falsches, das sie an erster Stelle erscheinen lässt? Wenn ich es entfernen muss, wie gehe ich vor?

Antwort

3

Vergewissern Sie sich in Ihrer ViewDidLoad-Methode von InfoTableViewController, dass Sie die rechte Schaltfläche nicht auf die Bearbeitungsschaltfläche setzen.

Im standardmäßigen Stubcode der UITableViewController-Subklasse gibt es eine auskommentierte Zeile, die dies tut. Vielleicht haben Sie es versehentlich auskommentiert?

Die Einstellung in -viewDidLoad wird ausgeführt, nachdem Sie es bereits in Ihrem eingeschlossenen Code festgelegt haben, da die Methode erst ausgeführt wird, wenn der viewController tatsächlich geladen ist (dh wenn Sie ihn modal präsentieren).

+0

Ah, das war das Problem genau. Ich kann nicht glauben, dass ich das nicht gesehen habe! Vielen Dank. –

Verwandte Themen