从故事板获取视图控制器堆栈

时间:2015-04-27 09:22:09

标签: ios objective-c iphone xcode uinavigationcontroller

我尝试获取导航控制器的视图控制器数组。它将返回空白数组,如下所示:

   UIStoryboard *mystoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil]; 
UINavigationController *nav1 = [mystoryboard instantiateViewControllerWithIdentifier:@"nav1"];
 NSLog(@"%@",nav1.viewControllers);

但即使它有视图控制器,它也会显示空数组。

提前致谢

2 个答案:

答案 0 :(得分:0)

是。它会给出一个空数组。原因很简单。当您说instantiateViewControllerWithIdentifier:@"nav1"时,这会实例化一个标识为UINavigationController的新nav1

此时我理解的是你想从这个NavigationController中获取视图控制器的总数。

您可以在使用此代码推送此导航控制器的任何视图控制器中执行此操作

NSArray *VCArray = self.navigationController.viewControllers;

希望这可以解决您的问题。但是如果没有,我会在不知道你的实现和问题的情况下帮助你。

答案 1 :(得分:0)

以下代码可能对您有所帮助:

代码是:

NSMutableArray *navigationArray = [[NSMutableArray alloc] initWithArray: self.navigationController.viewControllers];

这是将所有视图控制器推入堆栈。