从xib或其他场景添加子视图与故事板
我是iOS和Xcode的新手。 我不知道如何devise一个分离的视图,并使用故事板添加到主UIViewController。
我做了不同的方法..
- 只需从xcode的右下angular窗口中抓取一个UI对象,然后将其放到故事板的任何空间区域。 但是我不能像xib一样删除UI对象。
- 添加一个新的UIViewController。 将视图添加到
UIViewController
。 在主ViewController.m中,我在viewDidLoad中获得新的UIViewController
实例,然后[self.view addSubview:newUIViewController.view]
。 但是我看不到增加的观点。 - 我创build了一个新的xib文件。 并添加一个视图到它。 我也尝试在主
ViewController
获取实例。 并用xib的视图添加子视图。 但它也失败了。
有没有正确的方法或任何工作的解决scheme呢?
我想出了办法。 描述如下:
- 创build一个.xib文件。 例如:MyView.xib
- 创build一个Objective-C类。 例如:MyViewClass.h和MyViewClass.m
- 将.xib文件的所有者设置为类。
- 在storyboard上添加一个UIView元素,并将自定义类设置为objective-c类名(MyViewClass)。
-
关键是要覆盖object-c类中的initWithCoder方法。
- (id)initWithCoder:(NSCoder *)aDecoder { if ((self = [super initWithCoder:aDecoder])) { [self addSubview:[[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil] objectAtIndex:0]]; } return self; }
这个想法是由故事板加载的自定义类和initWithCode将被调用。 索引0是.xib界面构build器中的根视图。
这有点棘手,但它的作品。
在故事板中,拖放视图控制器。 视图控制器带有主视图。 单击添加的视图控制器的外部,然后单击它的中心select该主视图。 现在,就像在IB上一样,把一个uiview或其他任何东西拖到主视图中。