当我尝试在嵌入UINavigationController
的{{1}}内以编程方式设置控制器时,我的应用中出现了一种非常奇怪的行为。
基本上,我的应用是UITabBarController
。其每个标签均为UITabBarController
。当我收到推送通知时,我想选择一个特定的标签并设置一个UINavigationControllers
的数组。
这是我的代码(在App Delegate中):
UIViewControllers
大部分时间都有效。例如,如果我的控制器是这样的:
当电流控制器是A,B,C,D,E,G或I时,它工作正常。
如果当前控制器是E,H或J,它显示黑色方块而不是我的控制器。似乎UITabBarController *rootViewController = (UITabBarController*) [[[[UIApplication sharedApplication] delegate] window] rootViewController];
int idx = // find the tab position using rootViewController.viewControllers (the user can reorder them)
rootViewController.selectedIndex = idx;
UINavigationController *navController = childController.navigationController;
NSArray *ctrls = navController.viewControllers;
NSMutableArray *newCtrls = [NSMutableArray arrayWithArray:ctrls];
// Add one or more controllers to the list
UIViewController *detailsController = ....;
[newCtrls addObject:detailsController];
// Set the new list
[[NSOperationQueue mainQueue] addOperationWithBlock:^ {
[navController setViewControllers:newCtrls animated:YES];
}];
和我自己UIMoreNavigationController
之间存在混淆,但我看不出我在哪里做错了。
有没有人遇到过这种问题?