Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 从AppDelegate推送到特定的viewController_Objective C_Ios - Fatal编程技术网

Objective c 从AppDelegate推送到特定的viewController

Objective c 从AppDelegate推送到特定的viewController,objective-c,ios,Objective C,Ios,我的应用程序层次结构如下所示: tabBarController >> navigationControllers (multiple) >> viewControllers (multiple) 当appDelegate中发生特定事件时,我希望在其中一个NavigationController中推送特定的viewController。现在我有这个: UINavigationController *myNavigationController = [[(UITabBar

我的应用程序层次结构如下所示:

tabBarController >> navigationControllers (multiple) >> viewControllers (multiple)
appDelegate
中发生特定事件时,我希望在其中一个NavigationController中推送特定的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中时有效。无论您在应用程序中的哪个位置,我都希望它能够正常工作。谢谢

在推送之前,您需要以编程方式切换到特定导航控制器所在的选项卡0

UITabBarController *tbc = (UITabBarController*)self.window.rootViewController;
tbc.selectedIndex = 0;
UINavigationController *myNavigationController = tbc.selctedViewController;
etc......

上面的代码假设您希望从特定导航控制器(选项卡0中的导航控制器)推送targetViewController,但如果您不关心哪个导航控制器推送它,则只需删除tbc.selectedIndex=0行。下一行将推送当前选定的导航控制器。从您的问题来看,我不确定您想要哪个。

在推送之前,您需要以编程方式切换到选项卡0,其中包含特定的导航控制器

UITabBarController *tbc = (UITabBarController*)self.window.rootViewController;
tbc.selectedIndex = 0;
UINavigationController *myNavigationController = tbc.selctedViewController;
etc......

上面的代码假设您希望从特定导航控制器(选项卡0中的导航控制器)推送targetViewController,但如果您不关心哪个导航控制器推送它,则只需删除tbc.selectedIndex=0行。下一行将推送当前选定的导航控制器。从您的问题来看,我不确定您想要哪个。

targetViewController.navigationController的值是多少?如果将其设置为与myNavigationController不同的值,可能是这导致了问题targetViewController.navigationController的值是多少?如果将其设置为与myNavigationController不同的值,则可能是这导致了问题