Ios 我可以在不使用objectAtIndex的情况下读取视图控制器吗?

Ios 我可以在不使用objectAtIndex的情况下读取视图控制器吗?,ios,objective-c,Ios,Objective C,目标:当我触摸“第四个viewController”按钮的内部时,它会检查“第二个viewController”是否放置在viewController堆栈中,而不使用“objectAtIndex:x”。如果存在,它将弹出视图控制器,直到第二个视图控制器位于顶部 目前的结果: 2014-03-11 10:44:54.187 Test_Push[320:11303] ( "<HomeViewController: 0x7153bd0>", "<secondViewControlle

目标:当我触摸“第四个viewController”按钮的内部时,它会检查“第二个viewController”是否放置在viewController堆栈中,而不使用“objectAtIndex:x”。如果存在,它将弹出视图控制器,直到第二个视图控制器位于顶部

目前的结果:

2014-03-11 10:44:54.187 Test_Push[320:11303] (
"<HomeViewController: 0x7153bd0>",
"<secondViewController: 0x71636c0>",
"<thirdViewController: 0x71648e0>",
"<fourthViewController: 0x7128b60>"
)
2014-03-11 10:44:54.187测试推送[320:11303](
"",
"",
"",
""
)

我不完全确定我是否理解您的要求,但如果您想检查secondViewController是否在viewControllerStack中,请执行以下操作:

NSArray * viewControllerStack = // I'm assuming you have array here

if ([viewControllerStack containsObject:secondViewController]) {
    // 'secondViewController' in viewControllerStack
    // Pop secondViewController here
}
else {
    // 'secondViewController' NOT in viewControllerStack
    // do other stuff
}
试试这个

for (UIViewController *viewcontroller in [self.navigationController viewControllers]) {
    if ([viewcontroller isKindOfClass: [secondViewController class]]){

        [self.navigationController popToViewController:viewcontroller animated:YES];
    }
}   
尝试以下解决方案:

for(int i=0;i<[[self.navigationController viewControllers]count];i++)
{
    NSLog(@"%@",[[self.navigationController viewControllers]objectAtIndex:i]);

    if([[[self.navigationController viewControllers]objectAtIndex:i] isKindOfClass:[secondViewController class]]){

        [[self navigationController]popToViewController:[[self.navigationController viewControllers]objectAtIndex:i] animated:YES];

    }

for(int i=0;i您的理解是正确的。检查后,显示“secondViewController”,而不使用“objectAtIndex”.Its Works!!!但是一个常规错误。在secondViewController中使用小的“s”。我给出了另一个解决方案。我想知道,在这两个解决方案中,哪一个在空间和时间复杂度方面更好。@Akhilrajtr或任何人知道吗?@UdanPirappu该解决方案使用
objectAtIndex:
,而在问题中,它说
,而不使用“objectAtIndex:x”
@Akhilrajr-Oops!好的。但是第一次我简单地按照如下方式:“[[self-navigationController]popToViewController:[[self.navigationController]viewControllers]objectAtIndex:1]animated:YES];”然而,现在我动态地制作程序。