我对视图层次结构有疑问:
我目前有一个HomeViewController
,在登录屏幕后加载到视图中。 HomeViewController
有一个ContainerView
,其中嵌入了SubViewController
。加载主视图时,最初会隐藏此容器。当我触发一个动作(通过UIButton
)到#34;取消隐藏"容器,我试图在viewDidLoad期间在SubViewController
中呈现的HomeViewController
中加载图像。
我面临的问题是,无论出于何种原因,我似乎无法在SubViewController
中显示图像。
FYI :我渲染此图片的方式如下:
HomeViewController
的viewDidLoad上,我正在以编程方式拍摄从保存的用户数据生成的UIView
屏幕截图。此UIView
显示在HomeViewController
。SubViewController
,ContainerView
中嵌入的视图。 我似乎无法将屏幕截图图像(保存为imageSS
)显示在SubViewController
中。我已经尝试在加载SubViewController
时抑制HomeViewController
的viewDidLoad方法,然后在按下按钮时调用SubViewController
viewDidLoad来显示它,但也没有运气。
这可能会令人困惑,但它应该很容易 - 我不知道为什么我无法让它发挥作用。如果有人可以帮助我,我会很感激。谢谢!
以下是我目前正在尝试的代码:此方法位于HomeViewController.m
- (void)takeScreenshot:(id)sender {
UIGraphicsBeginImageContextWithOptions(_homeRenderImage.bounds.size, NO, 0.0);
[_homeRenderImage drawViewHierarchyInRect:_homeRenderImage.bounds afterScreenUpdates:YES];
UIImage *imageSS = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
SubViewController *pvc = [[SubViewController alloc] init];
userImage = imageSS;
[pvc loadImage];
}
以下是我在SubViewController.m
中使用的方法:
注意:userImage是这些控制器之间的共享属性。我已经测试过这个共享工作
- (void)loadImage {
_subImage.image = userImage;
}
答案 0 :(得分:0)
我感到愚蠢 - 我需要做的就是在viewWillAppear方法中调用loadImage方法:
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear: animated];
[self loadImage];
}