如何从导航控制器中的视图控制器堆栈中获取特定的视图控制器?
我有一个应用程序,我有一个表view.when按下单元格上的按钮,我必须去另一个视图控制器(即:testviewcontroller)显示我在上一个选择的内容。然后当按下一个按钮我需要去另一个视图控制器显示remaing values.if他选择那里然后我需要重复上述过程。问题是从这里我也携带一些值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];
,但我知道
NSArray *array = [del.navigationController viewControllers];
[array objectAtIndex:3]
是我需要的视图控制器。
任何人都可以知道我怎么能避免再次推这个视图控制器?
* 编辑 * 这应该是
for (TestViewController*vc in [self.navigationController viewControllers])
,而不是
for (UIViewController*vc in [self.navigationController viewControllers])
如果你用你的想法编辑我的代码并放在这里,它会很好吗? – hacker 2012-08-15 08:36:43
如果你对iPhone开发并不陌生,这很简单,很难理解你想要在你的问题中说些什么。 – 2012-08-15 08:39:52
@bugfinder我已经编辑了答案,据我了解你的问题。 – 2012-08-15 08:42:08
对于您的情况是尤为明显,以弹回,并重新装入新contents..no表需要推到一个新的实例
使用一个单独的数组表
的数据源中删除所选项目从数据源阵列
然后推到下一个视图POP操作返回重新加载内容
快乐编码:)
当我弹出我需要携带一些values.to显示there.thats问题 – hacker 2012-08-15 08:30:50
然后通过appdelegate传递它...你可以创建代码中任何地方的共享实例为[uiapplication sharedApplication] Delegate] – 2012-08-15 09:01:18
可以遍历在视图控制器堆栈循环。
-(void) viewWillDisappear:(BOOL)animated {
if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) {
NSMutableArray *ViewControllerArray=[[NSMutableArray alloc]init];
for (long i=[self.navigationController.viewControllers count]-1;i>0; i--) {
[ViewControllerArray addObject:[self.navigationController.viewControllers objectAtIndex:i]];
NSLog(@"%@",ViewControllerArray);
NSLog(@"%@",self.navigationController.viewControllers);
}
for (UIViewController *controller in self.navigationController.viewControllers) {
//Do not forget to import AnOldViewController.h
if ([controller isKindOfClass:[YourViewController class]]) {
[self.navigationController popToViewController:controller
animated:YES];
break;
}
}
}
[super viewWillDisappear:animated];
}
我很难理解你的问题。主要是由于你的句子结构。 – Cyprian 2012-08-15 08:26:55
@Cyprian的主要事情是我希望弹出到我的视图控制器在堆栈中的一组值? – hacker 2012-08-15 08:29:36
@Cyprian而不是创建新的实例我怎么才能弹出我的视图控制器的一些值 – hacker 2012-08-15 08:32:06