2010-10-11 4 views
1

Dans mon application, je présente un modalviewcontroller comme suit et je ne suis pas en mesure de modifier le titre de la barre de navigation ou l'une de ses propriétés d'ailleurs.titre de la barre de navigation ne pas se définir iphone

fullListTopCompanies *fullListTopCompaniesInstance = [[fullListTopCompanies alloc] initWithNibName:@"fullListTopCompanies" bundle:nil]; 

UINavigationController *cntrol = [[UINavigationController alloc] initWithRootViewController:fullListTopCompaniesInstance]; 

[fullListTopCompaniesInstance setTitle:@"TEST"]; 


UIBarButtonItem *submit = [[UIBarButtonItem alloc] 
          initWithBarButtonSystemItem:UIBarButtonSystemItemDone 
          target:self 
          action:@selector(displayViewForPosts)]; 
fullListTopCompaniesInstance.navigationItem.rightBarButtonItem = submit; 
[submit release]; 


[self presentModalViewController:cntrol animated:YES]; 
[cntrol release]; 

J'ai essayé instanciation délégué de l'application et l'attribution de son NavigationController à l'instance de NavigationController local, mais pas d'utilisation.

D'une manière ou d'une autre, ce contrôleur de navigation n'est pas accessible. Il n'est pas accessible en utilisant "self.navigationitem". Chaque fois que je présente modalviewcontroller avec le controleur de navigation, cette navigation se trouve en dessous du controleur de navigation actuel.

Quelqu'un peut-il aider s'il vous plaît?

Merci d'avance.

Répondre

0

Chaque fois que je présente modalviewcontroller avec le contrôleur de navigation, cette navigation se trouve en dessous du contrôleur de navigation actuel.

Ce problème est parce que l'appel presentModalViewController: sur soi-même, vous devez appeler sur self.navigationController cette façon, le contrôleur de navigation ne sera pas affiché ci-dessous l'autre.

En ce qui concerne la raison pour laquelle vous ne pouvez pas définir les propriétés de navigationController, je ne sais pas. Ça m'a l'air ok. Mais je suppose que c'est parce que vous définissez les propriétés avantviewDidLoad est appelé par le chargeur nib. Je pense que je me souviens d'avoir eu ce genre de problèmes il y a longtemps.

Vous devez définir le titre, etc. dans la méthode viewDidLoad de la sous-classe UIViewController et je pense que vos inquiétudes seront terminées.

0

J'ai créé une vue application simple à base de modèle de Xcode, alors j'ai ajouté votre code et il travaille pour moi ...

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

// Override point for customization after application launch. 

// Add the view controller's view to the window and display. 

TestViewController *fullListTopCompaniesInstance = [[TestViewController alloc] initWithNibName:@"TestViewController" bundle:nil]; 

UINavigationController *cntrol = [[UINavigationController alloc] initWithRootViewController:fullListTopCompaniesInstance]; 

[fullListTopCompaniesInstance setTitle:@"TEST"]; 


UIBarButtonItem *submit = [[UIBarButtonItem alloc] 
          initWithBarButtonSystemItem:UIBarButtonSystemItemDone 
          target:self 
          action:@selector(displayViewForPosts)]; 
fullListTopCompaniesInstance.navigationItem.rightBarButtonItem = submit; 

[window addSubview:viewController.view]; 
[window makeKeyAndVisible]; 

[viewController presentModalViewController:cntrol animated:YES]; 

[cntrol release]; 
[submit release]; 

return YES; 

}

2

Par exemple, si vous êtes essayer de définir le titre de la barre de navigation pour le ViewController appelé "ABCViewController", puis ajouter

self.Title = @ "";

dans viewWillAppear Méthode de l'ABCViewController et essayez de reconstruire et exécuter.

Espérons que cela aide. :)

Questions connexes