2011-05-12 6 views
3

独自のnibファイルに保存しているカスタムツールバービューがあります。私は他のペン先でそのツールバーを使いたいです。メインのnibファイルのサブビューとして何らかのビューを表示し、ツールバーのnibをロードすることは可能ですか?インタフェースビルダーでの使用が好ましいインタフェースビルダーのnibファイルからサブビューをロードする

ありがとう

答えて

2

と独立して、いつでもそれを読み込むことができ、あなたのnibファイル内の単一のビューを持っており、アプリ内のさまざまな場所でそのビューのインスタンスをロードすることができるようにしたいように聞こえます。

まず、nibファイルに、のUIViewControllerにファイルの所有者クラスを変更し、ファイルの所有者のビューのプロパティとしてカスタムビューを設定します。

はここで行うWhatchaのです。

その後、カスタムビューのインスタンスを使用したいビューコントローラでは、次の操作を行います。

UIViewController *vc = [[UIViewController alloc] initWithNibName:@"YourCustomNib" bundle:nil]; 
UIView *yourCustomView = vc.view; 
[vc release]; 

私はそれが一種のハックようだけど、最後は私はそれが実際の一つだ聞きましたペン先から単一のビューをロードする "正しい"方法。私はペン先にカスタムテーブルビューのセルがある場合、このメソッドを使用します。

+0

nibファイル内の唯一のものは、ボタン付きのツールバーです。私は、ビューコントローラのビューを作成しました。ペン先では、これを含める必要があります。私は、私が参照を保持している空のビューを持っていました。上記のようにnib名でView Controllerを割り当て、self.toolbarをカスタムツールバーのビューに設定しました。それは表示されません。これはviewDidLoadにあります。 – smokingoyster

+0

私は[self.view addSubview:yourCustomView];それに。つまり、フレームのインタフェースビルダーには期待できません。幸いにも、これは常に0,0になるツールバーです。だから大きな問題はない。 – smokingoyster

+0

私はあなたが何を意味するのか知っていると思う...あなたは本当に別のペン先からツールバービューを参照することはできません。それをコードに挿入する必要があります。私は通常、同じことをします:正しいフレームでプレースホルダビューを使用し、それをviewControllerで使用してカスタムビューを配置します。 – CharlieMezak

3

は、個別のnibファイルに存在するカスタムツールバーですか? yesの場合、あなたは

NSArray *arr = [[NSBundle mainBundle] loadNibnamed:@"customToolBarNibName" owner:... options:...]; 

UIView *rootView = [arr objectAtIndex: 0]; 
+0

ツールバーは別のnibファイルに組み込まれています。ツールバークラスはCustomUIToolbarです。すべてのボタンはアウトレットのCustomUIToolbarクラスに接続されています。私は、ツールバーを使用して任意のビューコントローラの代理プロトコルを持っています。理想的には、これはInterface Builderプラグインであることが望ましいですが、これは明らかにサポートされなくなりました。このツールバーをInterface Builderの別のビューに配置して、デザインを追跡できるようにしたいと思います。 – smokingoyster

+0

フレーム=(0 0; 1024 54);と言っているにもかかわらず、何らかの理由を除いて、これは素晴らしいです、ツールバーが画面をいっぱいにします。ここにオブジェクトのNSLog出力があります。 > – smokingoyster

関連する問題