1

私のアプリには、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

どのオプションがより良いか、または私が見逃している他の可能なアプローチを教えてくれる人はいますか?

4

3 に答える 3

1

あなたのオプション#1は、書かれているようには適切ではありませんが、おそらく検討すべきアプローチに近いです。異なる のビューをネストして追加できますが、その場合は、親コントローラーが子コントローラーを正しく管理できるように、カスタム コンテナーでの子ビュー コントローラーの管理でUIViewController説明されている方法を使用する必要があります。

于 2013-11-12T00:42:15.430 に答える
1

You can use as many tableviews as you want for the same controller. The delegate methods contains the object that fired the method itself.

Following this approach (which i wouldn't recommend) you can probably tag your tableviews and then do:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
{
    if (tableView.tag == 1) {
        doStuff;
    } else if (tableView.tag == 2) {
        doOtherStuff;
    }
}
于 2013-11-12T00:44:16.990 に答える
0

個人的には、エンド ユーザーがアプリをすぐに使いこなせるように、物事をシンプルかつわかりやすくする必要があると思います。これにはアニメーションが重要な役割を果たします。テーブルビューのセルをタップすると、別のテーブル ビューがプッシュされ、遷移を示す山形のようなさまざまな UI ウィジェットがあり、ユーザーは驚きません。

1 つの画面にすべてを表示し、ユーザーのアクションに基づいて非表示/非表示にすることは、適切なアニメーションがある限り問題ありません。たとえば、TableView セクションがタップで折りたたまれたり展開されたりするのを見たことがあるかもしれません。

トレードオフを行い、アプリケーションに基づいて最適なものを確認する必要があります。私の提案は、単純な非表示/非表示の代わりに素敵なアニメーションを追加することです。

于 2013-11-12T00:40:13.797 に答える