2011-06-02 4 views
0

タイトルとUINavigationControllerに問題があります。私はUIViewControllerCurrentで次のコードを使用しています.NextButtonのタイトルは、NextViewControllerから戻ってきてもまだ "Previous"です。誰か親切にこの問題を助けてくれますか?ありがとう。UINavigationControllerの "title"の問題

[self setTitle:@"Previous"]; 
NextViewController *controller = [[NextViewController alloc] init]; 
[[self navigationController] pushViewController:controller animated:YES]; 
[controller release], controller = nil; 

- (void)viewWillAppear:(BOOL)animated; {  
[self setTitle:@"Real Title"];  
[super viewWillAppear:animated]; } 

答えて

2

私はあなたが

[super viewDidAppear:animated]; 
[self setTitle:@"Real Title"]; 

を取得し、私はviewDidAppearにこれらを置くように、2つのライン

[self setTitle:@"Real Title"];  
[super viewWillAppear:animated]; 

を交換しようとするだろう。

+0

私はそれらをviewWillAppearの中に入れれば、それはシームレスに起こります。そうでなければ(シミュレータでは少なくとも)タイトルが変わっていることに気付きます。助けてくれてありがとう :) – Ahsan

0

下記のUINavigationController delegateメソッドを使用してみてください。

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated; 
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated; 

タイトルを変更するには、デリゲートメソッドの1つを使用します。

0

dasdomsの解決策が機能しない場合は、以下を試してください。

直前のNextViewControllerでこのコードを実行します。

for (int i =0; i < [[self.navigationController viewControllers] count]; i++) 
    { 
     UIViewController *aController = [[self.navigationController viewControllers] objectAtIndex:i]; 

     if ([aController isKindOfClass:[PreviousViewController class]]) 
     { 
      PreviousViewController *aPreviousViewController = (PreviousViewController *)aController; 
      aPreviousViewController.title = @" Real Title"; 
     } 

    } 
関連する問題