これは非常に一般的な質問ですが、問題を修正するために多くのことを試みた後、最終的にStackOverFlow.comに投稿することにしました
タブバーベースのアプリがあります。タブバーは、次のようにAppDelegate.mにロードされます。
self.tabBarController.viewControllers = @[viewController1, viewController2 , viewController3 , viewController4 , viewController5];
5番目のタブにはログアウト用のボタンがあります。ユーザーがログアウトをクリックしたら、アプリ全体をクリア/リセットして、モーダルビューコントローラーであるログインページに移動します。
ログアウト中にフォローしてみました:
NSMutableArray * vcs = [NSMutableArray
arrayWithArray:[self.tabBarController viewControllers]];
[vcs removeAllObjects ];//ObjectAtIndex:4];
[self.tabBarController setViewControllers:vcs];
これにより、タブバーからすべてのビューが削除されます。しかし、再度ログインすると何も表示されません。ホーム画面、つまりデフォルトで選択されているタブ項目1を表示したい。
手動でdidFinishLaunchingWithOptionsを再度呼び出すのは良い習慣ではないことを読みました。
すべてのタブバーをリセットして再初期化する方法はありますか?
これは、この状況に関連するもう1つの問題を解決するのに役立ちます。ユーザーがログアウトして再度ログインし、View Controllerがクリアされていない場合、ログイン後にログアウトページが再度表示されます。そして、ホームビューコントローラーではありません。
助けてください。
前もって感謝します。