如何在Objective-C中创建可在故事板中的多个视图中使用的公共控件?

bri*_*tey 4 xcode controls objective-c storyboard ios

我刚刚开始使用xCode 4.2进行iOS开发,并发现了故事板.它们似乎非常适合快速原型设计.

我想知道的是如何创建自己的自定义控件,我可以在多个视图中使用.

例如,假设我想要一个在每个视图中都很常见的自定义标题栏.我想我应该能够用它自己的控制器定义该控件,并从多个视图中实例化它.我只是不知道如何,到目前为止我读过的教程和问题都没有解决这个问题.

有小费吗?

bri*_*tey 7

我发现一种方法是执行以下步骤:

  1. 创建一个新的xib文件并将模拟指标设置为"自由形式"以允许调整大小. (MyControl.xib)
  2. 使用控件中我想要的对象填充控件.
  3. 为视图创建一个UIViewController. (MyViewController.h & MyViewController.m)
  4. 设置File's OwnerMyControl.xib,以自定义类MyViewController
  5. 在我想要包含控件的xib中,我将UIScrollView放在我想要控件的位置(常规View也可以工作).(Parent.xib)
  6. 创建IBOutletUISCrollView,我会把控制进入的ParentController.
  7. 创建的实例MyViewControllerParentController.
  8. ParentController,添加视图MyViewController作为子视图UIScrollView.

在代码中,这意味着

@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];
        } 
   }
Run Code Online (Sandbox Code Playgroud)

这似乎工作,并允许我分离控件和父实现,但我不禁认为有更好的方法.