私はタブバーMainViewController
をいくつか持っていて、最初はView 1
で、最大3人または4人の子供のスタックを持つナビゲーションコントローラです。最後のタブバーボタンはSettingsViewController
で、その中に 'Logout'と似た機能があり、AppDelegateのメソッドを呼び出してMainViewController
を削除し、ユーザーをログインページに戻します。あるView 1
上タブバーのナビゲーションコントローラをポップアップ
SettingsViewController
にログアウトボタンを押すと、私はAppDelegateは(も行われる)ログオンビューに戻って、ユーザを送る、(私がやった)View 1
ように選択されたタブを設定するだけでなく、popToRootViewController私は苦労しているビット。
tabBarのviewControllersプロパティを使用してインデックス0のビューコントローラへの参照を取得しようとしましたが、正しく実装されていない限り正しい方法ではありません。
私の最も最近の試み:
// Fine
mainViewcontroller.tabBarController.selectedIndex = 0;
// Not so fine
NSArray *allViewControllers = [mainViewcontroller.tabBarController viewControllers];
View1 *vc = [allViewControllers objectAtIndex:0];
[vc.navigationController popToRootViewControllerAnimated:NO];
ちょうどタブ内のすべてのビューコントローラを反復処理と同じように動作するようには思えないルートに飛び出る別の試み:
for (UIViewController *viewController in mainViewcontroller.tabBarController.viewControllers)
{
[viewController.navigationController popToRootViewControllerAnimated:NO];
}
缶誰も助けてくれる?
ビュー1にUINavigationControllerがありますか? – bontoJR
これは、View 1の追加のView Controllerをプッシュするものです。ログアウトすると、そのナビゲーションコントローラが最初にポップされます。 – Greg
あなたはそれをどのように正確に実装していますか?あなたは特定のビューコントローラクラスにアクセスするviewControllerをキャストしようとしましたか? –