2012-04-11 2 views
0
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    UIBarButtonItem *refreshButton = [[UIBarButtonItem alloc] initWithTitle:@"Refresh" style:UIBarButtonItemStylePlain target:self action:@selector(refreshButtonClicked:)]; 
    [self.navigationItem setRightBarButtonItem:refreshButton animated:YES]; 
} 
- (void)refreshButtonClicked:(id)sender { 
    NSLog(@"Refreshed."); 
} 

J'ai ajouté un contrôleur de navigation par programmation dans AppDelegate et défini cette vue en tant que racine.uibarbutton ne fonctionne pas

Lorsque j'essayais d'ajouter un élément de navigation par programme comme indiqué ci-dessus, le refreshButton était affiché dans la barre de navigation mais refreshButtonClicked: n'était pas appelé.

Quel est le problème? Toutes les suggestions et commentaires sont les bienvenus.

+0

Comment? Ce code est travaillé. – beryllium

+0

@beryllium 'NSLog (@" Refreshed. ");' N'a pas de sortie –

Répondre

0

Problème résolu. Bizarre. Après avoir nettoyé les builds, supprimer les données dérivées et redémarrer Xcode, ça marche correctement. Comment est-ce que vous détectez que `refreshButtonClicked:` n'a pas été appelé?

0

Faire un appel à la super classe dans votre viewDidLoad

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    UIBarButtonItem *refreshButton = [[UIBarButtonItem alloc] initWithTitle:@"Refresh" style:UIBarButtonItemStylePlain target:self action:@selector(refreshButtonClicked:)]; 
    [self.navigationItem setRightBarButtonItem:refreshButton animated:YES]; 
} 

Il veillera à ce que la configuration de la classe racine est fait

+0

ok je l'ai fait mais ne fonctionne toujours pas –

Questions connexes