1

UINavigationControllerを使用していくつかのビューコントローラーにプッシュしています。3番目のUISubViewControllerにいるときは、「popToRootViewController」にコーディングすると元に戻ります、ナビゲーションバーアイテムは1番目ではなく2番目のビューコントローラーにプッシュします。

  • アニメーションの有無にかかわらず試してみましたが、何も変わりません。
  • self.navigationController.navigationBarがポップバックすると言ってみましたが、バーでは何も起こりません。

手伝ってくれてありがとう..

4

2 に答える 2

1

私はあなたの質問に少し混乱していますが、これは役立つはずだと思います。私の知る限り、UINavigationControllerの「戻る」ボタンを1ポップ以上戻すことはできません。つまり、popToRootViewController関数を実行する別のボタンを追加する必要があります。次のようなものを試してください。

UIBarButtonItem *newButton = [[UIBarButtonItem alloc] initWithTitle:@"Home" style:UIBarButtonItemStylePlain target:self action:@selector(homeAction:)];

self.navigationItem.rightBarButtonItem = newButton;

これにより、ナビゲーションコントローラーの右側にボタンが追加されます。次のステップは、アクションで名前を付けたものと呼ばれる関数を追加することです(この場合、「homeAction」と呼ばれる必要があります)。これは次のようになります。

-(IBAction)homeAction:(id)sender {
      [self.navigationController popToRootViewControllerAnimated:YES];
}

これは、スタック内のどこにいても、コントローラーのルートへのポップバックをカバーする必要があります。また、.hファイルにIBActionメソッドを追加する必要がありますが、それ以外は、必要なすべてを実行する必要があります。

于 2010-11-21T21:09:19.270 に答える
0

NavigationControllerのUIViewControllersの配列で何か奇妙なことをしているのでない限り、メソッドは次のようになります。

[self.navigationController popToRootViewControllerAnimated:YES];
于 2010-11-03T18:58:27.613 に答える