我知道如何在“主”视图控制器中放置一个nib文件:
当我执行此方法时,将显示一个新的nib文件。
是否可以将该nib文件放在UIView控制器中?
我想将该nib文件放在该视图控制器中,而不是放在主视图中。我怎么能这样做?
编辑:
我试着做你提到的保罗我不知道我做错了什么。无论如何,这就是我所做的:
我使用您提到的方法创建了另一个视图控制器。
我将IBoutlet UIView *exampleView
连接到基本视图:
然后从这里我迷路了我不知道在哪里放置其他方法。我想将exampleView放入:
那个观点。
我已经尝试将它们放在pgBackground.m中,但它不起作用。我想把它们放在一个IBaction中,这样我就可以通过按钮在内部事件中加载它。
答案 0 :(得分:1)
我设法将一个nib文件放在uiview控件中,但我遇到的问题是如果设备没有旋转子视图。我目前正在研究解决方案,但到目前为止here is a question可以向您展示如何将视图从另一个nib文件添加到uiview控件。
答案 1 :(得分:0)
如果我遵循,我认为你需要:
创建一个带有关联xib的UIView
子类
ExampleView.h
ExampleView.m
ExampleView.xib
设置一个属性以包含View层次结构(您希望在“界面”构建器中连接的所有内容)
ExampleView.h
@property (nonatomic, retain) IBOutlet UIView *exampleView;
ExampleView.m
@synthesize exampleView = _exampleView;
在ExampleView.m
您需要添加:
- (void)awakeFromNib
{
[super awakeFromNib];
[[NSBundle mainBundle] loadNibNamed:@"ExampleView" owner:self options:nil];
[self addSubview:self.exampleView];
}
您从nib使用awake,因此您可以在Interface Builder中使用此子类。如果您还想在代码中实例化它,则需要在init方法中连接xib。在这种情况下,我可能会像这样提取笔尖:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self loadNibIntoView];
}
return self;
}
- (void)awakeFromNib
{
[super awakeFromNib];
[self loadNibIntoView];
}
- (void)loadNibIntoView
{
[[NSBundle mainBundle] loadNibNamed:@"ExampleView" owner:self options:nil];
[self addSubview:self.exampleView];
}
在ExampleView.xib文件中,确保将IBOutlet UIView *exampleView
连接到基本视图。
现在,在任何想要使用自定义视图的xib文件中,只需将其拖到窗口中,然后将类更改为子类。这就是我如何运作我期待有些人建议改进。
答案 2 :(得分:0)
- (IBAction为)btnSubmit_click {
UIDeviceOrientation orientation = [[UIDevice currentDevice]orientation];
if (orientation == UIDeviceOrientationLandscapeLeft) {
// Do stuff
}
else if (orientation == UIDeviceOrientationLandscapeRight) {
// Do stuff like [self setCordinateLandscape];
}
} - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
//set as per requirements ====>>
return (interfaceOrientation == UIDeviceOrientationLandscapeRight);
// Or return TRUE;
}
答案 3 :(得分:0)