我正在使用最新的SDK开发iOS应用程序。
我想创建一个自定义UIView
并使用XIB文件设置布局。
对于这个XIB,我使用Interface Builder添加了四个UIButton
。
现在,我想将这四个按钮连接到我的自定义UIView
课程并管理IBActions
。 这非常重要,我必须这样做。
要加载xib:
- (id)initWithCoder:(NSCoder *)aDecoder {
if ((self = [super initWithCoder:aDecoder]))
{
[self addSubview:[[[NSBundle mainBundle] loadNibNamed:@"MyCustomView"
owner:self
options:nil] objectAtIndex:0]];
}
return self;
}
我还有一个故事板,我使用Interface Builder为主UIView
添加了ViewController
。
我的问题是:如何在Interface Builder上将新的XIB文件连接到我的自定义UIView
?
我想我必须在Interface Builder上打开这个新的xib并将main ViewController
设置为File的Owner,并将我的自定义UIView
类设置为这个新XIB上的视图的类,但是我我不确定。
并且,在主ViewController
上,将此新视图的类更改为我的自定义UIView
。
答案 0 :(得分:1)
在Interface Builder中,将自定义类设置为CustomView
。建立与此自定义类的连接。在您想要使用此xib的任何视图控制器中,只需使用loadNibNamed:owner:options:
方法加载笔尖。
CustomView *cView = [[[NSBundle mainBundle] loadNibNamed:@"CustomView"
owner:nil
options:nil] objectAtIndex:0];
[cView.button1 addTarget:self action:@selector(actnForBtn1:) forControlEvents:UIControlEventTouchUpInside];
[cView.label1 setText:@"sometext"];
[self.view addSubview:cView];
并在视图控制器中添加方法actnForBtn1:(id)sender
,以便在不同的视图控制器中执行不同的操作。
答案 1 :(得分:0)
在View.h中
+(View *)loadViewFromNib;
在View.m
中+(View *)loadViewFromNib{
return (View *)[[[NSBundle mainBundle] loadNibNamed:@"View" owner:self options:0] objectAtIndex:0];
}
加载查看电话
View *view = [View loadViewFromNib];
在View.xib文件中,将文件所有者类设置为查看,将视图类设置为视图将Outlets仅连接到视图,不将FilesOwner!强>