0

ルート ビュー コントローラーとしてタブ バーがあります。各タブは、ルートとして詳細ビュー コントローラーを持つナビゲーション コントローラーです。

ロジックはほぼ同じですが、プロパティの値が異なるいくつかのタブが必要です。同じ vc を使用し、init メソッドでプロパティを設定するのが最善の方法だと思いました。何かのようなもの:

[[MyViewController alloc] initWithStyle:MyCustomStyle]

しかし、このメソッドを呼び出す場所がわかりません。

4

2 に答える 2

1

ペン先またはストーリーボードを使用してUIを作成していると思います。もしそうなら、はい、UIViewControllersまたはサブクラスのカスタム初期化を行うことはサポートされていません-指定された初期化子が呼び出されます。

考えられる回避策:

  • プログラムで作成するUITabBarController:この方法で、VCを好きなようにインスタンス化できます

  • インスタンス化時に実際にどのインスタンスであるかをMyViewController確認し、それに応じて設定します。たとえば、含まれているView Controllerを確認し、それを調べます(たとえば、タブインデックスが何であるかを確認します)。

最初のオプションは、はるかに優れたオプションです。これは、よりクリーンMyViewControllerで、または同様のものへの潜在的な配置について知る必要がないためUITabBarControllerです(これは非常にハッキーです)。

于 2012-11-02T17:14:50.473 に答える
0

ナビゲーション コントローラーのインスタンス化と初期化を NIB に依存している場合は、いくつかのトリックを使用してそれぞれにそれが何であるかを伝えることができます。

最も簡単な方法は、NIB でタグを設定し、 initWithNibName:bundle:initWithCoder:、または viewDidLoadで異なる値を処理することです。

于 2012-11-02T17:16:49.110 に答える