我的应用程序层次结构如下所示:
tabBarController >> navigationControllers (multiple) >> viewControllers (multiple)
当 appDelegate
中发生某个事件时,我希望在其中一个navigationControllers中推送一个特定的viewController . 现在我有这个:
UINavigationController *myNavigationController = [[(UITabBarController*)self.window.rootViewController viewControllers] objectAtIndex:0];
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil];
StoreViewController *targetViewController = (StoreViewController*)[mainStoryboard instantiateViewControllerWithIdentifier:@"StoreViewController"];
[myNavigationController pushViewController:targetViewController animated:YES];
这仅在应用程序当前与targetViewController在同一个navigationController中时才有效 . 无论您在应用程序中的哪个位置,我希望它能够正常工作 . 谢谢!
1 回答
在执行推送之前,您需要以编程方式切换到特定导航控制器所在的选项卡0 .
上面的代码假设您想要从特定的导航控制器(选项卡0中的那个)推送targetViewController,但是如果您不关心哪个导航控制器推送它,那么只需删除tbc.selectedIndex = 0行 . 以下行将推送导航控制器当前所选的导航控制器 . 我不确定你的问题,你想要的 .