12

ビューにリンクされているUITableViewControllerにすべてのテーブルビューロジックをカプセル化しました。これはストーリーボードを使用して行われました。

このロジックとビューを別のビューコントローラー/ビュー(下にスクロール可能なテーブルがあるヘッダー情報のようなもの)に埋め込みたいと思います。

次のコンポーネントがあります。UIViewにリンクされているCustomViewController(ストーリーボードからドラッグイン)UITableViewにリンクされているCustomTableViewController(ストーリーボードからドラッグイン)

基本的に、iOSクロックアプリでストップウォッチのシナリオを模倣しようとしています

  • これに対する獣のアプローチは何ですか?
  • プログラムでどのように行われますか?
  • どういうわけか、これはストーリーボードで実行できますか?

どんな助けでも大歓迎です。ありがとう

4

1 に答える 1

25

わかりました。この機能が追加されたため、このソリューションはiOS5固有のものです。この方法はストーリーボードで機能します。

セットアップ:1つのビューコントローラービューとロジックを別のコントローラー内でホストすることを目的としています。

  1. ストーリーボードで子ViewControllerを参照する本質的な方法がないため、ViewControllerに名前を付ける必要があります。これは、ストーリーボードのコントローラーの「識別子」属性に入力することで実行できます。注:コントローラービューではなく、コントローラーにIDを指定していることを確認してください。

  2. 集約するコントローラーをインスタンス化します。これは、ホスティングコントローラーから実行できます。

    UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"ControllerIdentifier"];
    
  3. 子コントローラーを親コントローラーに追加します

    [self addChildViewController: controller];
    
  4. 子コントローラービューを親コントローラービューに追加します。親コントローラーに子ビューを追加するプレースホルダービューがある場合は、ここで追加します。ここでは、親コントローラーのステージと呼ばれるUIViewを追加します。

    [self clearStage]; 
    [self.stageView addSubview:controller.view];
    presentedController.view.frame = self.stageView.bounds;
    

そしてそれだけです。ものすごく単純。私はそれをコントローラーの切り替えと自家製のタブコントロールでの表示でうまく使用しました。サブコントローラーはそのビューをビューライフサイクルに登録するためviewDidLoad、などはすべてこの子ビューコントローラーで期待どおりに機能します。

これが誰かを助けることを願っています。

于 2012-05-06T03:07:04.760 に答える