2010-05-16 7 views
1

Comment puis-je popView de bouton retour pressé, je passe le code ci-dessous du contrôleur de vue précédent. MercipopViewControllerAnimated de bouton retour

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] 
     initWithTitle:@"Back" 
     style:UIBarButtonItemStyleBordered 
     target:nil action:nil]; 

Répondre

3

Il n'est pas nécessaire d'ajouter manuellement un bouton de retour.

Mais si vous avez vraiment besoin de ce bouton personnalisé pour faire apparaître le contrôleur de vue, vous pouvez créer un message personnalisé.

-(void)popViewControllerWithAnimation { 
    [self.navigationController popViewControllerAnimated:YES]; 
} 
... 
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] 
    initWithTitle:@"Back" 
    style:UIBarButtonItemStyleBordered 
    target:self action:@selector(popViewControllerWithAnimation)]; 

Ou créez un emplacement NSI.

NSInvocation* invoc = [NSInvocation invocationWithMethodSignature: 
     [self.navigationController methodSignatureForSelector:@selector(popViewControllerAnimated:)]]; 
// watch out for memory management issues: you may need to -retain invoc. 
[invoc setTarget:self.navigationController]; 
[invoc setSelector:@selector(popViewControllerAnimated:)]; 
BOOL yes = YES; 
[invoc setArgument:&yes atIndex:2]; 
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] 
    initWithTitle:@"Back" 
    style:UIBarButtonItemStyleBordered 
    target:invoc action:@selector(invoke)]; 
+0

Je pensais que '' target' s et action' s sur un 'UIBarButtonItem' qui est utilisé comme le' backBarButtonItem' ont été ignorés ... Je ne l'ai pas testé, mais si tel est le cas, votre code , et tout autre code essayant de remplacer le bouton Retour, ne fonctionnera pas. (Seul le 'title' est utilisé pour le' backBarButtonItem' afaik.) –

+0

@DouweM: Ah bon. Utilisez le 'leftBarButtonItem' alors. Quoi qu'il en soit, je ne vois pas de raison de remplacer le bouton de retour par défaut. – kennytm

+0

Non, moi non plus, mais c'est ce que l'OP et votre code essayaient de faire;) –

Questions connexes