2011-10-26 3 views
4

xCode 4.2を使用してiOS開発を開始し、ストーリーボードを発見しました。迅速なプロトタイプ作成には最適です。ストーリーボードの複数のビューで使用できるObjective-Cで共通のコントロールを作成するにはどうすればよいですか?

私は複数のビューで使用できる独自のカスタムコントロールを作成する方法があると思います。

たとえば、すべてのビューで共通のカスタムタイトルバーを使用したいとします。私は自分のコントローラでそのコントロールを定義し、それを複数のビューからインスタンス化できるはずだと思います。私はちょっと分かりませんし、今まで読んだことのあるチュートリアルや質問はこれに対処していません。

ヒント?

+0

+1私はストーリーボードが今まで存在していたことも知らなかったので+1します。 – JeremyP

+0

これはかなり曖昧な質問です。絞り込んで、どんな種類のコントロールを作成するかを提案することができます。これは主に、他のコントロールが持っていない機能をあなたが望む機能に依存します。 – Jamie

+0

私は、基本的なものからなる複合コントロールを作りたいと思います。たとえば、左側にロゴ、上部にタイトル、タイトルの下にサブタイトルなどのようなものを持つカスタネットタイトルバーを作成したいと考えています。私の思想は、私がいくつかのビューに含まれているような自分のコントロールを作成することができるということです。そうすれば、後で私はそれを変更したいと思うなら、私はすべてのビューを変更する必要はありません - ただ一つのコントロール。私はオブジェクトライブラリ内の "カスタムオブジェクト"領域を見ましたが、これが私が望むものか、それをどうやって使うのか見つからなかったのです。 – brianestey

答えて

7

私はこれを行うための一つの方法は、以下の手順を実行することです見つけた:

  1. 新しいXIBファイルを作成し、「自由形式」にリサイズできるようにシミュレートされたメトリックを設定します。 (MyControl.xib)
  2. コントロールに必要なオブジェクトをコントロールに挿入します。
  3. ビューのUIViewControllerを作成します。 MyControl.xib私はコントロールを含めるXIBで
  4. MyViewControllerカスタムクラスへの File's Ownerを設定し (MyViewController.h & MyViewController.m)
  5. は、私は(通常のビューがあまりにも動作します)私がコントロールしたいUIScrollViewのを置きます。 (Parent.xib
  6. UISCrollViewIBOutletを作成し、コントロールをParentControllerに挿入します。
  7. ParentControllerMyViewControllerのインスタンスを作成します。
  8. ParentControllerにはUIScrollViewのサブビューとしてMyViewControllerのビューを追加します。コードで

、これは

@implementation ParentController 
    @synthesize myScrollView; 
    MyViewController* myController; 

    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
    { 

     self = [super init]; 
     if(self) 
     { 
      myController = [[MyController alloc] initWithNibName:@"MyView" bundle:nil]; 
      [myScrollView addSubview:myController.view]; 
     } 
    } 

を意味これが動作しているようですし、私は、コントロールの実装と親を分離することができますが、私は助けるが、より良い方法があると考えることはできません。

関連する問題