2010-01-11 16 views

Respuesta

43

Debe establecer el título en el controlador de vista que agrega a su controlador de navegación.

es decir, en el controlador de vista complemento

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.title = @"My Title"; 
} 

o acceder a la matriz de sus viewcontrollers directamente

 AddFriendViewController *addFriendsView = [[AddFriendViewController alloc] initWithNibName:@"AddFriendViewController" bundle:nil]; 
     [self.navigationController pushViewController:addFriendsView animated:YES]; 
     [[self.navigationController.viewControllers objectAtIndex:0] setTitle:@"myTitle"]; 
     [addFriendsView release]; 
0

¿Estas seguro que no self.navigationController.navigationItemnil es cuando se establece el título?

14

Cada controlador de vista tiene un elemento de navegación. Está cambiando el elemento de navegación del controlador de navegación ... ¡pero eso nunca se verá a menos que el controlador de navegación esté dentro de otro controlador de navegación! En lugar de

self.navigationController.navigationItem.title = @"hai"; 

desea

self.navigationItem.title = @"hai"; 

o, si el título de su elemento de navegación es nula, el controlador de navegación utilizará el título de su controlador de vista:

self.title = @"hai"; 

Debe establecer simplemente el ver título, que es utilizado tanto por las barras de navegación como por las barras de pestañas, a menos que desee especificar un título diferente para cada una de ellas por algún motivo.

0

Si no ViewController ha sido empujado en la pila, es decir. se esté viendo la viewcontroller en la parte superior de la pila (a veces llamado RootViewController) puedes hacerlo con

[rootViewController setTitle:@"Title"]; 

en cuenta que debe utilizar setTitle - rootViewController.title = @ "Título" normalmente no funcionar .

En realidad, puede hacerlo con cualquier controlador de visualización, incluso si todavía no se ha descargado. Si se crea mediante programación, basta con crear con

myViewController *mvc=[[myViewController alloc] initWithNibName:@"nameofnibwithout.xib" bundle:nil]; 

O usted podría declarar como un objeto en el delegado de la aplicación, lo convierten en un IBOutlet, crear un UIViewController y establezca su clase para myViewController, y conectarlo a la IBOutlet entonces no es nada

0

Es posible que necesite ajustar la barra de navegación para "Barra de Navegación Negro Con Preguntar" en la ficha Atributos en el controlador. Eso es lo que funcionó para mí.

1

En mi caso el título no era visible en iOS6, cuando lo instalo en el método init:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 

    if (self) { 
     self.title = LS(@"Favorites"); 
     self.tabBarItem.title = LS(@"Favorites"); 
     self.tabBarItem.image = [UIImage imageNamed:@"star"]; 
    } 

    return self; 
} 

Por lo tanto, debe ser trasladado desde allí a ViewDidLoad.

Cuestiones relacionadas