1

我使用UINavigationController.

这是我的过渡图像

  1. “主要”-->“第二”-->“第三”-->“第四”
  2. “第二”-->“A”-->“B”
  3. “第二”-->“C”
  4. “第三”-->“D”

    • “主要”是 RootViewController。
    • 在 2 号和 3 号,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”成为“第二”。
我想将 UIRootViewController 设置为“第二”。
但是“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 回答