0

私は、それ自体がUITableViewControllerのタブであるUINavigationViewControllerにある別のUIViewControllerからアクセスできるUIViewControllerを逆展開する必要があります。UITabBarViewController内のUINavigationController内のUIViewControllerからアクセスされるUIViewControllerを逆展開する方法は?

基本的にはこの

UITabBarViewControllerのように見えます - >(各タブ)UINavigationController - >のUIViewController - >(プレスUIBarButtonItem) - > TheViewControllerIWant

ため、私が働いているプロジェクトの制約のために、これはすべて私のAppDelegateでプログラムで作成されています。私はストーリーボードを使ってこの問題を解決することはできません。

ここに私の既存のコードがあります。これはViewControllerをに私を取得しますが、私がまたスタートとしてこれを試してみました

- (BOOL) application: (UIApplication *) application openURL: (NSURL *) url sourceApplication: (NSString *) sourceApplication annotation: (id) annotation { 

    if ([url.scheme isEqualToString: @"myApp"]) { 

     if ([url.host isEqualToString: @"account"]) 
     { 
      self.window.rootViewController = [[EditAccountViewController alloc] init]; 
     } 
} 

タブでのViewControllerに戻ってナビゲートする方法を与えるものではありませんが、次のViewControllerを楽しみにナビゲートする方法がありませんそれにTabBarの1つから:私はまあ、あなたが手動で、すべてのアクションをトリガーする必要があり、この

答えて

-1

を達成するにはどうすればよい

- (BOOL) application: (UIApplication *) application openURL: (NSURL *) url sourceApplication: (NSString *) sourceApplication annotation: (id) annotation { 

    if ([url.scheme isEqualToString: @"myApp"]) { 

     if ([url.host isEqualToString: @"account"]) 
     { 
      [_tabBarController setSelectedIndex:0]; 
      self.window.rootViewController = _tabBarController; 
     } 
    } 
} 

....

だから'LLそれは第二第三などのオブジェクトであれば

[_tabBarController setSelectedIndex:0]; 
UIViewController *myVC = self.tabBarController.viewControllers.firstObject; 
UIViewController *destinationVC = [[UIViewController alloc] initWithNibName:@"vc.nib" bundle:[NSBundle mainBundle]]; 
[myVC.navigationController pushViewController:destinationVC animated:YES]; 
+0

...まず、あなたが最初のタブののUIViewControllerを取得し、ナビゲーションコントローラに送信先のViewControllerをプッシュする必要がありますあなたのTabBarController の最初のタブを選択する必要がありますtabbarには対応する.secondObject .thirdObjectなどがあり、vcsを呼び出すでしょうか? – DCIndieDev

+0

もし私が上記の答えのために1つ下の階層に行き、別のVCを押したければ、どうすればいいですか? – DCIndieDev

+0

ナビゲーションスタックを特定の順序で保持したい場合は、次のプッシュ後に新しいviewControllerをスタック上にプッシュする必要があります。スタックを気にしない場合は、最後のデスティネーションView Controllerを初期化し、Navigation Stackの最初のVCとして押します。あなたの他の質問に関しては、 'self.tabBarController.viewControllers'は' NSArray'ですので、 '[self.tabBarController.viewControllers objectAtIndex:2];のような他のViewControllerを参照するでしょう。 、3、4、など。 – Lefteris

関連する問題