【发布时间】:2016-06-07 14:19:50
【问题描述】:
我遇到了一个问题,即调用 setViewControllers 不会将我的视图控制器数组设置为我的导航视图控制器。我 am 在一个块中执行此操作,所以我不确定这是否是 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
当我从后台到前台打开应用程序时,我的代码可以正常工作。
【问题讨论】:
-
换句话说,你在哪里调用这个块你期望它在从其他地方调用时工作吗?如果有,具体在哪里?
标签: ios objective-c iphone uinavigationcontroller