1

目的のビューコントローラーにポップしていますが、uinavigationbar と uinavigationitem に正しい名前が表示されず、ナビゲーションバーに正しい名前を表示するには戻るボタン (uinavigationitem) をクリックする必要があります。

私は使っている

     YTOCalculatorViewController * parent = (YTOCalculatorViewController *)self.controller;
     [self.navigationController popToViewController:parent animated:YES];

YTOCalculatorViewController を表示するため。このコードをビューに配置しましたが、YTOCalculatorViewController に移動したい場所からビューコントローラーが消えますが、正しいビューコントローラーにポップされますが、ナビゲーションバーに間違った名前が表示され、戻るボタンをクリックすると正しい名前が表示されます。

たとえば、私はスタックC B Aにあります

この場合、A は YTOCalculatorViewController です。C が表示されているときに情報を保存して、もう一度 A を表示したいので、上記のコードを使用します。

そして、A から C に移動し、C から A に x 回戻った場合、A に到着したら、A に属する正しい uinavigationbar の名前を表示するために、戻るボタンを x 回クリックする必要があります。 . uinavigationbar には、A の名前ではなく、B ビューコントローラーの名前が表示されます。

わかりにくかったら申し訳ありませんが、私の問題を理解していただければ幸いです。

4

1 に答える 1

0

自己から自己へとポップしようとしているようです..

すでにプッシュされている特定のコントローラーにポップしたい場合は、 A->B->C->D をプッシュしたとします。現在Dにいて、 Bをポップしたい場合は、次の手順を実行する必要があります。

for(UIViewController *controller in [self.navigationController viewControllers]){
    if([controller isKindOfClass:[B class]]){
        [self.navigationController popToViewController:controller animated:YES];
        break;
    }

}

上記は正常に動作するはずです。上記のコードは構文的に正しくない可能性があります。その場合は修正してください。

于 2013-02-11T12:31:28.820 に答える