私のアプリには、起動時にモーダルで表示するログイン画面があります。ログインに成功すると、ユーザーは 5 つの UINavigationController (タブ用) を持つ UITabBarController にリダイレクトされます。
1 つのタブに「ログアウト」ボタンがあり、ユーザーはログイン画面にリダイレクトされます。それはうまくいっています。
しかし、私がやりたいことは、ユーザーがログインするたびに UITabBarController をロードすることです。つまり、UITabBarController を再利用するべきではありません。今のところ、新しいログインが行われたときも、タブのコンテンツ (Web からデータを読み込みます) は同じままです。
UINavigationcontrollers を使用して UITabBarController を解放/ポップ/nil するにはどうすればよいですか?
私がこれまでに試したこと:
それは、ユーザーが「ログアウト」ボタンを押したときに、ユーザーをログイン画面に戻すポイントです。
[self.navigationController presentModalViewController:navigContrLogin animated:YES];
[[self navigationController] popToRootViewControllerAnimated:YES]; --> NOT WORKING
[self.navigationController popViewControllerAnimated:NO]; --> NOT WORKING
[self.tabBarController release]; ---> NOT WORKING
誰でも私を助けてもらえますか?
編集:それがUITabBarControllerを追加する方法です。ユーザーがログインボタンをクリックしたときにこれを行います。
[self.navigationController dismissModalViewControllerAnimated:NO];
[self.navigationController setNavigationBarHidden:YES];
[self.navigationController pushViewController:tabBarController animated:NO];
[self.navigationController removeFromParentViewController];
EDIT2:解決しました。私がやっていることは、ユーザーがログアウト ボタンをクリックしたときに、アプリ デリゲートからナビゲーション コントローラーを呼び出し、それを使用してログイン ビューコントローラーをプッシュすることです。
MyAppDelegate *del = (MyAppDelegate*)[UIApplication sharedApplication].delegate;
[del.navControllerLogin pushViewController:loginController animated:YES];