繁体   English   中英

如何将UIView控制器添加到UIView

[英]how do i add a UIView controller to a UIView

我有一个UIViewController类型的自定义类。 我想将其添加到UIView以便可以将其输出到屏幕。

UIView称为engineView我的自定义UIViewController称为Engine。 控制器中有一个名为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以编程方式对其调用函数。

谁能告诉我我该怎么做?

在此处输入图片说明

您可以在界面构建器中设置storyBoard标识符,然后像上面建议的那样使用它。

  MyViewController *instance = [self.storyBoard instantiateViewControllerWithIdentifier:@"yourIdentifier"];

至于将ViewController添加到UIView中,您也可以通过使用addChildViewController方法来实现。

尝试这样..

Engine *engine = (Engine *)[self.storyboard instantiateViewControllerWithIdentifier:@"EngineViewControllerStoryBoardID"];

设置故事板ID
在此处输入图片说明

将图像传递给引擎:

->在Engine.h中创建UIImage属性

就像@Property UIImage * engineImage;

->将该图像分配给Engine.m中的UIIMageView

-(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.

设置StoryboardId 之后,您可以通过以下代码在View Controller上添加图像

        UIImageView *image=[UIImageView alloc]initWithFrame:CGRectMake(x, y, your width, your Height);
        img setImage:[UIImage imageNamed:@"imageName"];
        [eng addSubview:image];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM