如何从拆分视图控制器(ipad后退按钮)删除视图控制器?

时间:2015-03-10 11:04:03

标签: ios objective-c ipad back

我使用以下代码从navigationcontroller(viewcontrollers)删除我的登录页面,以便在返回时(后退按钮)不会再次进入视图。

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
NSMutableArray *VCs = [NSMutableArray arrayWithArray: self.navigationController.viewControllers];
   if ([[VCs objectAtIndex:[VCs count] - 2] isKindOfClass:[loginViewController class]]&&(VCs.count>=4))

   { [VCs removeObjectAtIndex:[VCs count] - 2];
   [VCs removeObjectAtIndex:[VCs count] - 2];
   [self.navigationController setViewControllers: VCs];
 }
NSLog(@" after :%@",VCs);
}

这适用于我的手机。我尝试了以下代码用于ipad

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
    {

NSMutableArray *VCs = [NSMutableArray arrayWithArray: self.splitViewController.viewControllers];
    NSLog(@" bofore :%@",VCs);
    if ([[VCs objectAtIndex:[VCs count] - 2] isKindOfClass:[loginViewController class]]&&(VCs.count>=4))
    {

        [VCs removeObjectAtIndex:[VCs count] - 2];
        [VCs removeObjectAtIndex:[VCs count] - 2];

        [self.navigationController setViewControllers: VCs];
        NSLog(@" after :%@",VCs);

    }

}

但在这种情况下,可变阵列VC的内容是UINavigationControllar个对象。 任何人都知道如何为ipad做同样的事情?提前谢谢..

1 个答案:

答案 0 :(得分:0)

在iPhone中     NSMutableArray * VC = [NSMutableArray arrayWithArray:self.navigationController.viewControllers]; 根控制器是一个导航控制器,因此使用上面的语句,您将在其堆栈中获得视图控制器。

在iPad中 NSMutableArray * VC = [NSMutableArray arrayWithArray:self.splitViewController.viewControllers]; 根控制器是一个splitviewcontroller,它包含一组导航控制器,因此您可以在阵列中获得导航控制器。 添加下面的代码行,并使用ViewControllers Array提取自己的viewcontroller。

UINavigationController *navContoller = self.splitViewController.viewControllers[0]; // Get the Navigation Controller
NSMutableArray *viewControllers = [NSMutableArray arrayWithArray: navController.viewControllers];