私のアプリには、login-register-forgotpasswordワイヤーフレームがあります。プロセスの各ステップは個別の に実装され、UIViewController
それらはすべて同じ 内にあり、Storyboard
各コントローラ間のトランジションはアニメーション化されます。ここまでは順調ですね。
今ではデザインを変更したので、すべてのビューに同じ背景要素とヘッダー (正確にはUINavigationBar
ではありません) があり、実際には常に同じように見えるビューに対するアニメーションの感触は好きではありませんが、別の形を示しています。そのため、コントローラー全体をプッシュするのではなく、ビューを表示/非表示にするだけで、同じコントローラーにとどまるというさまざまなアプローチを検討しています.-
1)私の最初の試みは、表示したいビューのコントローラーをインスタンス化し、それを現在のビューに追加することでした。何かのようなもの。-
- (IBAction)btnRegisterPressed:(id)sender {
_viewHome.hidden = YES;
RegisterController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"registerNewUser"];
[self.view addSubview:controller.view];
}
フォームに静的UITableViews
を使用しているため、これは完璧です。私が知る限り、UITableViewController
それぞれに必要です。しかし、それは壊れたようIBOutlets
ですIBActions
。このアプローチは何らかの方法で可能ですか?もしそうなら、それは悪い習慣と見なされますか?
2)私の 2 番目のオプションは、1 つのコントローラー内にすべてのビューを作成し、それらを適切に表示/非表示にすることです。これは維持するのが難しく、 static を忘れなければならない可能性がありますUITableViews
。
どのオプションがより良いか、または私が見逃している他の可能なアプローチを教えてくれる人はいますか?