6
votes

Ajout d'un bouton «fait» droit (UIBARBUTTNITEM) à un UINAVIGATIONController

Je vois qu'une question similaire a été posée ici: Comment Pour ajouter un bouton droit à une uoinavigationController? (entre autres) mais ce n'est pas tout à fait ce que je cherche à faire et ils ne résolvent pas mon problème.

Essentiellement, j'ai créé un UIViewController appelé webviewviewontroller avec un UIWebView sur celui-ci qui sera montré en utilisant PresentModalViewController. Essentiellement son navigateur Web Mini Web pour afficher une page Web tout en conservant l'utilisateur dans l'application plutôt que de lancer Safari. P>

La vue Contentrale est la suivante pour l'obtenir pour montrer ... et le bouton "Terminé" est destiné à fournir un endroit pour fermer le navigateur. P>

-(IBAction)visitFacebook {
    WebViewViewController *rootController = [[WebViewViewController alloc] init];
    rootController.webURL = @"http://www.facebook.com/";
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootController];
    UIBarButtonItem *doneButton = [[UIBarButtonItem alloc ] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(done:)];

    [navigationController.navigationItem setRightBarButtonItem:doneButton animated:YES];
    [navigationController.navigationItem setTitle:@"Facebook"];

    if (rootController) {
        [self presentModalViewController:navigationController animated:YES];
    }

    [doneButton release];
    [rootController release];
}


0 commentaires

3 Réponses :


6
votes

Peut-être que vous recherchez quelque chose de plus comme ceci:

UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" 
                                      style:UIBarButtonItemStyleDone target:self 
                                     action:@selector(dismissModalViewControllerAnimated:)];


1 commentaires

Hmm .. même chose. Je pense qu'il y a une chose plus nombreuse qui me manque. Je pataugeant développeur.apple.com/Library/ iOS / # FeatureDarticles / ... Mais je ne vois pas ma solution.



10
votes

Essayez avec ci-dessous

-(IBAction)visitFacebook{
WebViewViewController *rootController = [[WebViewViewController alloc] init];
rootController.webURL = @"http://www.facebook.com/";
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootController];
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc ] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(done:)];

 rootController.navigationItem.rightBarButtonItem = anotherButton;

[navigationController.navigationItem setTitle:@"Facebook"];

if (rootController) {
    [self presentModalViewController:navigationController animated:YES];
}

[doneButton release];
[rootController release];

}


3 commentaires

Merci beaucoup. Comme je le pensais, la clé était de mon manque de compréhension.


La clé était que la navigationItem en question est un attribut du contrôleur racine, pas la navigationController! Correct: rootcontroller.navigentitem.rightbarbuttonitem = Donebutton; incorrect: [NavigationController.navigentItem Setrightbarbuttonitem: Donebutton Animation: Oui];


@Jmattos envisagez de marquer cela comme une réponse si cela a permis de résoudre votre problème.



5
votes
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Done"
        style:UIBarButtonItemStylePlain target:self action:@selector(done:)];
Just this one line code displayed done button for me.

0 commentaires