UinavigationController内のuitabbarcontrollerのpopview
-
03-10-2019 - |
質問
Xcodeのユーティリティテンプレートに基づいてアプリケーションを構築しています。これには、さらにビューが追加されています。私のアプリケーション構造は次のとおりです。
Mainview(アプリメニュー)
フリップサイドビュー(計算機)
uinavigationcontroller
設定ビュー
ViewDidload:uitabbarcontroller
- Tab1 view (options) - Tab2 view (information text)
マインビューからフリップサイドビューまで正しくナビゲートできます。これは、ナビゲーションコントローラーのルートビューでもあります。フリップサイドビューから、uitabbarcontrollerを表示するように構成されているナビゲーションコントローラー(設定ビュー)の2番目のビューをプッシュします。
uitabbarcontrollerを削除すると、設定ビューから「popviewcontroller」を使用して、フリップサイドビューに問題なく戻ることができます。問題は、設定ビューにviewDidloadにUITABBARCONTROLLERをロードすると、タブが完全に機能しますが、フリップサイドビュー(ナビゲーションコントローラーのルートビュー)に戻ることができません。
ナビゲーションコントローラーのナビゲーションバーを使用すると返すことができますが、独自のボタンを構成し、ナビゲーションバーを隠したいと思います。
これまでのところ、次の方法を試しました。
self.navigationcontroller popviewControllerAnimated:はい];
self.navigationcontroller poptorootviewcontrollerAnimated:はい];
self.navigationcontroller poptoviewcontroller:flipsideviewcontrollerアニメーション:はい];
しかし、彼らはうまくいかないようです。最初の2つは何もしません(画面にはそのまま残ります)、3番目のものは「FlipsideViewController」を認識しません(MainViewControllerの代表だからでしょうか?)。
ナビゲーションバーの「バック」ボタンをアクティブにした場合、正確に何をしているのかを確認する方法はありますか?
代表者を使用する必要がありますか?
2つのタブビューのいずれかから設定ビューでPopViewControllerメソッドを呼び出すことはできますか?
これは私の裏返しのビューです:
- (IBAction)showSettingsView {
SettingsViewController *controller = [[SettingsViewController alloc] initWithNibName:@"SettingsView" bundle:nil];
controller.title = @"Settings";
[self.navigationController pushViewController:controller animated:YES];
[controller release];
}
これは私の設定ビューです:
- (void)viewDidLoad {
[super viewDidLoad];
tabBarController = [[UITabBarController alloc] init];
Tab1ViewController* vc1 = [[Tab1ViewController alloc] init];
Tab2ViewController* vc2 = [[Tab2ViewController alloc] init];
NSArray* controllers = [NSArray arrayWithObjects:vc1, vc2, nil];
tabBarController.viewControllers = controllers;
[self.view addSubview:tabBarController.view];
}
タブビューの1つで返す方法:
- (IBAction)backFromTab1View {
[self.navigationController popToViewController:FlipSideViewController animated:YES];
}
質問があまりにも基本的であれば、どうもありがとうございました!
解決
私は実際に、設定ビューで自分のuinavigationbarを作成して使用する問題を解決しました。
[self.view insertSubview:tabBarController.view belowSubview:myNavigationBar];
これにより、ナビゲーションバーの下に残りのビューが挿入されますが、ビューをポップして前の画面に戻るボタンを構成するために使用できます。
「addsubview」と「insersubview + belowsubview」の違いを実現するのに時間がかかりました。申し訳ありません!