2011-11-14 3 views
23

ストーリーボード機能を使用するiOS5では、2 ViewControllersが埋め込まれたカスタムコンテナを作成します。例として、テーブルコントローラとビューコントローラの両方を1つに埋め込むViewController。 、1つのビューコントローラが2の関係がありますされiOS 5でストーリーボードを使用してカスタムビューコントローラコンテナを作成する方法

:順番に

それに4 UIImageビューまたはUIButtonを持つことになり、コントローラを表示するには、テーブルビューコントローラ

    1. ですストーリーボードのドラッグドロップ機能を使用してこのタイプの関係を可能にするのは、プログラムではなく&ですか?

  • +0

    あなたの例に問題があります。 CustomViewController viewDidLoadイベントは発生しません...正常ですか?それを修正する方法はありますか?そうでなければ、これは本当に良い投稿です!ありがとうございました。 –

    答えて

    14

    シーンを制御するビューコントローラは1つだけです。しかし、このviewControllerには、シーンの特定のサブビューを制御する他の2つのView Controllerがあるかもしれません。これを行うには、シーンviewControllerにプロパティを作成します。ケースの場合はtableViewController用、ビュー用の場合は1つです。私は物事をまとめるのが好きなので、これらのviewControllerの両方のアウトレットを作成し、インターフェースビルダーで作成します。インタフェースビルダーでそれらを作成するには、オブジェクトライブラリからオブジェクトを取り出し、そのタイプを関連するviewControllerに設定します。あなたのシーンのviewControllerで作成した適切なコンセントに接続してください。注:これは重要です。それ以外の場合は、ARCを使用してアプリケーションをクラッシュさせる場合はviewControllerが解放されます。次に、これらのViewControllerを制御したいビューまでフックして、完了します。

    また、シーンのviewControllerでviewControllerをインスタンス化してホップアップすることもできます。

    これが役に立ちます。

    編集:これは良いアイデアではなく、実際にはHIGに逆らってコンテンツの各画面に対して1つのViewControllerを維持し、代わりに適切なビュークラスを作成して、単一のView Controllerで対話を処理しますさまざまな意見の間に

    +3

    私たちはビューのコンセントを作成できますが、どのようにしてstoryboardのviewControllerのコンセントを作成できますか? – Sayali

    +2

    インタフェースビルダーを開き、ストーリーボードを選択します。右下にはオブジェクトライブラリ(ビューコントローラとビューをプルする場所)のタイプのオブジェクトが検索ボックスに表示され、小さな黄色/オレンジ色のオブジェクトがシーンにドラッグされ、アイデンティティインスペクタでそのタイプが変更されますビューコントローラ。次に、あなたのシーンにあるビューを制御し、それを確認します。あなたのコードでは、あなたのView Controllerクラス用のIBOutletを用意して、そのオブジェクトに接続してください。 –

    +0

    しかし、コントロールするためにビューをフックアップする方法は?私がやったことは以下の通りです:select storyboard file-> viewcontroller(メインビューコントローラ)、TableviewController(サブビューコントローラの1つ)、および1つ以上のUIViewController(別のサブビューコントローラ)をドラッグします。 Main View Controllerで、UITableViewControllerとUIViewControllerの2つのIBOutletsを作成しました。その後、Main UIViewController->右クリックして、storyBoardのTableViewControllerに作成したIBOutletを接続します。しかし、それは接続を作成しませんでした。私が何か間違っていると私に知らせてください – Sayali

    0

    でもハッキーではありません。これは、UITabBarControllersの次のURLに記述されています。リストコントロールの最初のビューコントローラーを最初のサブビューに使用し、2番目のビューコントローラーをもう一方のコントローラーで使用することができます。または、UISplitViewControllerで動作するようにコードを変更することもできます。

    http://bartlettpublishing.com/site/bartpub/blog/3/entry/351

    基本的に、それは、iOSがそれの設定が終了した後に、実行時にtabbarcontrollerを交換することによって動作します。

    +0

    FYI - iOS 7以降、これはもう動作しません。同じようなことをする方法があるかもしれませんが、プロジェクトを標準のタブバーに切り替えました。 – johnnyb

    関連する問題