UINavigationViewController setViewControllers未正确设置

时间:2016-02-25 01:32:55

标签: ios objective-c iphone uinavigationcontroller

我遇到一个问题,即调用setViewControllers没有将我的视图控制器数组设置为导航视图控制器。我在一个块中执行此操作,因此我不确定它是否是UI问题(但我已尝试通过在主队列中设置我的视图控制器来解决此问题)。

[self thisIsABlock:^(){
        UIViewController3 *viewController3 = [storyboard instantiateViewControllerWithIdentifier:@"HeyHey"];
        // viewController3 is not nil

        NSMutableArray *array1 = [self.navigationController.viewControllers mutableCopy];
        // array1 contains [viewController1, viewController2]

        [array1 addObject:viewController3];
        [self.navigationController setViewControllers:array1 animated:NO];
        // Now array1 contains [viewController1, viewController2, viewController3] 

        NSMutableArray *array2 = [self.navigationController.viewControllers mutableCopy];
        // array2 only contains [viewController1, viewController2]
}];

这段代码是我在代码库中所做的事情的抽象。我可能会遗漏导致此问题的一些重要代码,但我希望有人之前遇到过此问题并知道问题所在。谢谢!

//编辑1:我在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

打电话给我

当我从后台打开应用程序到前台时,我的代码可以运行。

1 个答案:

答案 0 :(得分:0)

以上代码是正确的,但您可以提供这样的有效数据,

YourViewController *viewController3 = [self.storyboard instantiateViewControllerWithIdentifier:@"YourStoryBoardViewControllerIdentifer"];
希望它可以帮到你。