アプリが起動されると、タブバーコントローラーにリダイレクトされるフィールドを検証した後、ビューコントローラー(ログイン)を配置しました。問題は、ログアウト ボタンを配置する必要があり、ログアウト ボタンをクリックすると、ルート ビュー コントローラー (ログイン ページ) に移動する必要があることです。タブバーコントローラーからルートビューコントローラーにプッシュしようとしましたが、プッシュされましたが、さらに進んでいる間、まだいくつかのタブバーの問題に直面しています。タブバーアイテムからルートビューコントローラーにポップ/プッシュするにはどうすればよいですか?
4 に答える
AppDelegate.m で、LoginUIViewController を RootViewController として使用してナビゲーション コントローラーを作成したと想像します。
次のように問題を解決できます。
たとえば、TabBarControllerにFirstTabUIViewControllerがあり、 FirstTabUIViewController からLoginUIViewController (RootViewController)に戻りたいとします。
FirstTabUIViewController.h および .m で TabBarController への参照を作成します。
@property (強力、非アトミック) IBOutlet UITabBarController *tabBarController;
@synthesize tabBarController = _tabBarController;
.m で「LogOut」ボタンのクリックを処理するメソッドを作成します。
-(IBAction)logoutBtnTapped:(UIBarButtonItem *)送信者{
[self.tabBarController.navigationController popToRootViewControllerAnimated:YES];
}
そういうことです!それが役立つことを願っています:)
ログアウトボタンをクリックしたときに、ログイン画面を appdelegate ウィンドウに再度配置するだけです。
LoginViewController *loginVC = [[LoginViewController alloc]init];
AppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
[appDelegate.window setRootViewController:loginVC];// This will initiate the login screen again
ルートビューコントローラーに UINavigationController を使用できるかもしれませんhttp://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html
カスタムの戻るボタンに関する例がいくつかあります。デフォルトの戻るボタンを使用したい場合は、ログアウトとして名前を変更し、それにアクションを与えることができます。
ただのアイデア。