除了标签栏控制器消失外,此代码可以完美地切换视图控制器 现在我尝试使用此代码的许多不同变体
[self presentViewController:homeNavigationController animated:NO completion:nil];
但它们似乎都没有正常工作。推送控制器只是将视图冻结到位。关于该做什么的任何提示?
- (void)_tabBarItemClicked:(id)item {
assert([item isKindOfClass:[UIButton class]]);
NSInteger selectedIndex = ((UIButton *)item).tag;
[self setSelectedIndex:selectedIndex];
[self _setSelectedItemAtIndex:selectedIndex];
NSDictionary *userInfo = @{@"index": [NSNumber numberWithInt:selectedIndex]};
[[NSNotificationCenter defaultCenter] postNotificationName:@"tabBarDidSelectItem" object:nil userInfo:userInfo];
if (selectedIndex ==2) {
HomeViewController *homeViewController = [[HomeViewController alloc] initWithNibName:nil bundle:nil];
UINavigationController *homeNavigationController = [[UINavigationController alloc] initWithRootViewController:homeViewController];
[self presentViewController:homeNavigationController animated:NO completion:nil];
}}
答案 0 :(得分:1)
您正在以模态方式呈现homeNavigationController - 您所看到的是模态视图控制器的正常行为,即它们接管整个屏幕,包括标签栏。如果要查看标签栏,请不要使用模态演示文稿。
答案 1 :(得分:1)
我通过以下方式解决了这个问题:
1)在AppDelegate中定义YourTabBarController对象
2)来自YourTabBarController对象的presentViewController而不是像 确保您的Appdelegate对象已初始化。[appDelegateObj.yourTabBarObj presentViewController:homeNavigationController animated:NO completion:nil];];