当我尝试以编程方式在UINavigationController
嵌入在UITabBarController
.
基本上,我的应用程序是一个UITabBarController
. 它的每个选项卡都是UINavigationControllers
. 当我收到推送通知时,我想选择一个特定的选项卡并设置一个UIViewControllers
.
这是我的代码(在 App Delegate 中):
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];
}];
它大部分时间都有效。例如,如果我的控制器是这样的:
- 一个
- 乙
- C
- D
- 更多的
- E - F - G
- 你好
- Ĵ
当电流控制器为 A、B、C、D、E、G 或 I 时,它工作正常。如果当前控制器是 E、H 或 J,它会显示一个黑色方块而不是我的控制器。似乎 theUIMoreNavigationController
和 my own之间存在混淆UINavigationController
,但我看不出我在哪里做错了。
有没有人已经遇到过这种问题?