2010-05-13 8 views
2

Quelqu'un peut-il m'aider en ce que je suis seulement en train de changer le titre sur un UIBarButtonItem d'une classe différente.Comment changer UIBarButtonItem Titre - iPhone SDK

Mon code est:

- (IBAction) spanishPush { 
    SafetyTalks *bbiTitle = [[SafetyTalks alloc] init]; 
    bbiTitle.bbiOpenPopOver.title = @"Spanish"; 
} 

SafetyTalks = la classe que je suis en train de faire référence bbiOpenPopOver = le UIBarButtonItem.

Je peux changer le titre quand dans la classe SafetyTalks par simple:

bbiOpenPopOver.title = @"Talk Topics"; 

mais ne peut pas le faire quand je suis hors de cette classe.

Aidez-nous s'il vous plaît.

Andy

Répondre

1

Ce que vous pouvez faire est de définir une propriété dans la classe SafetyTalks. Déclarez-le et fournissez un getter et un setter personnalisés. De cette façon, le titre peut être obtenu et défini en dehors de la classe.

Dans le fichier d'en-tête, ajouter:

@interface SafetyTalks : ... { 
    // .... 
} 

// .... 

@property (assign) NSString *title; 

// .... 

@end 

Dans le fichier source, ajoutez:

@implementation SafetyTalks 

// .... 

- (NSString *)title { 
    return self.bbiOpenPopOver.title; 
} 

- (void)setTitle:(NSString *) value { 
    self.bbiOpenPopOver.title = value; 
} 

// .... 

@end 
+0

Je ne peux pas passer le fichier d'en-tête comme il est dit avertissement: propriété 'title' ' L'attribut 'copy' ne correspond pas à la propriété 'UIViewController' de la super classe Salutations Andy –

+0

Trié: - (void) didTitle: (Chaîne NSString *); dans le fichier d'en-tête - merci Laurent comme vous m'avez indiqué la bonne méthode. –

+0

Vous êtes les bienvenus. Comme vous n'avez pas spécifié la superclasse, je suis allé avec la propriété "title"; mais tu as l'idée. –

Questions connexes