如何从导航控制器中的viewcontrollers堆栈中获取特定的视图控制器?

hac*_*ker 2 iphone ipad ios

我有一个应用程序,其中我有一个表视图.当按下单元格上的按钮时,我必须转到另一个视图控制器(即:testviewcontroller)显示我在上一个选择的内容.然后按下一个按钮我需要转到另一个视图控制器显示剩余的值.如果他选择一个然后我需要重复上述过程.问题是从这里我也携带一些值到testviewcontroller.if我弹回我的视图控制器我怎么能带上新的价值.目前我这样做.

TestViewController *test  =[[ TestViewController alloc]initWithNibName:@"TestViewController" bundle:nil];


test.itemselected=head;

test.itemid=productid;
//NSLog(@"%@",del.navigationController);

[del.navigationController pushViewController:test animated:YES];
Run Code Online (Sandbox Code Playgroud)

但我知道

NSArray *array = [del.navigationController viewControllers];
Run Code Online (Sandbox Code Playgroud)

[array objectAtIndex:3]是我想要的视图控制器.

任何人都知道我怎么能避免再次推动相同的视图控制器?

Ank*_*ava 19

for (UIViewController*vc in [self.navigationController viewControllers]) {
if ([vc isKindOfClass: [TestViewController class]]){
vc.itemselected= head ; 
[[self navigationController] popToViewController:vc animated:YES];
  }
}
Run Code Online (Sandbox Code Playgroud)

*编辑* 这应该是

for (TestViewController*vc in [self.navigationController viewControllers])

代替

for (UIViewController*vc in [self.navigationController viewControllers])
Run Code Online (Sandbox Code Playgroud)