如何添加一个UIView控制器到UIView
问题描述:
我有一个类型为UIViewController
的自定义类。我想将它添加到UIView
,以便它可以用于输出到屏幕。如何添加一个UIView控制器到UIView
UIView
被称为engineView 我的自定义UIViewController
被称为引擎。在控制器中有一个名为addImage的自定义方法。
的代码如下:
Engine *engine = [[Engine alloc] init];
CGRect frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
engine.view.frame = frame;
UIImage *image = [UIImage imageNamed:@"photo2.jpg"];
[engine addImage:image];
[engineView addSubview: engine.view];
此不显示图像。
但是如果我通过故事板添加视图控制器,似乎工作(如果我在viewdidlayoutsubviews
方法中添加图像。但我想从父UIViewCcontroller
programically调用函数吧。
任何人都可以告诉我,我该怎么办呢?
答
尝试这样的..
Engine *engine = (Engine *)[self.storyboard instantiateViewControllerWithIdentifier:@"EngineViewControllerStoryBoardID"];
设置故事板ID
的图像传递到发动机:
- >创建Engine.h一个UIImage
属性
像@Property UIImage * engineImage;
- >该图像分配给UIIMageView
在Engine.m
-(void)viewWillAppear:(BOOL)animated
{
engineImageView.image = engineImage; // engineImageView is an example UIImageView replace it with your UIImageView
}
- >现在发送图像像 engine.engineImage =[UIImage imageNamed:@"photo2.jpg
“];
答
try this..
Engine *eng=[self.storyboardinstantiateViewControllerWithIdentifier:@"YourStoryboradId"];
*you can set storyboard id by going in Identity Inspector.
之后,你可以通过下面的代码
UIImageView *image=[UIImageView alloc]initWithFrame:CGRectMake(x, y, your width, your Height);
img setImage:[UIImage imageNamed:@"imageName"];
[eng addSubview:image];
答
您可以在Interface Builder中设置故事板识别您的浏览器添加图片和CA使用它像上面建议。
MyViewController *instance = [self.storyBoard instantiateViewControllerWithIdentifier:@"yourIdentifier"];
至于添加视图控制器来的UIView可以通过使用addChildViewController
方法也做到这一点。
我得到的错误:故事板()不包含标识符为'EngineViewControllerStoryBoardID'的视图控制器...我通过替换第一行添加了这一行。它是否正确? –
X0r0N
2014-08-28 05:58:27
我给示例故事板ID(EngineViewControllerStoryBoardID)取代与您的故事板ID EngineViewController – raki 2014-08-28 06:02:15
我不再得到该错误,但我仍然无法添加图像。我如何在引擎类中调用方法? [引擎addImage:[UIImage imageNamed:@“imageName”];?这似乎没有做任何事情。 – X0r0N 2014-08-28 06:29:26