1

を使用して多くの遷移アプリをコーディングしていUINavigationControllerます。

これは私の移行イメージです

  1. 「メイン」→「セカンド」→「サード」→「フォース」
  2. 「2番目」→「A」→「B」
  3. 「秒」→「C」
  4. 「3番目」→「D」

    • 「メイン」はRootViewControllerです。
    • No2 と No3 では、if (["boo" isEqual:"foo"]){transit "A"} else if ("boo"...){transit "C"}.

「Main」から「Forth」へ、No.1のトランジションができました。
このような

ThirdViewController *thirdView = [[ThirdViewController alloc] init];
[self.navigationController pushViewController:thirdView animated:YES];

しかし、「A」と「B」に「Second」を作ることができません。
UIRootViewController を「Second」に設定することを考えました。
ただし、「Second」は「A」と「C」を通過する必要があります。

このように「秒」で...

SecondViewController.m

AViewController *aView = [[AViewController alloc] init];
[self.navigationController pushViewController:aView animated:YES];

どのようにコーディングできますか?

ありがとうございました!そして下手な英語でごめんなさい。
私を助けてください!

4

2 に答える 2

2
NSInteger index = 0;
for (UIViewController *view in self.navigationController.viewControllers) {
    if([view.nibName isEqualToString:@"RootViewController"])//put any `XIB name` where u want to navigate 
        break;
    index = index + 1;
}
[[self navigationController] popToViewController:[[self.navigationController viewControllers] objectAtIndex:index] animated:YES];    
于 2012-06-22T09:47:13.197 に答える
0

コントローラーにプッシュするには、このコードを試してください

 DrawImgViewcontroller *ObjImageViewController = [[DrawImgViewcontroller alloc] initWithNibName:@"DrawImgViewcontroller" bundle:nil];
    [self.navigationController  pushViewController:ObjImageViewController  animated:YES];
    [ObjImageViewController release];

以下のコードを使用して戻ります

[self.navigationController popViewControllerAnimated:YES];

これを好きなコントローラーに使用します

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] animated:NO];//Instead of one you can use the currect index you need
于 2012-06-22T09:56:50.653 に答える