我有两个视图,一个是Gameview,另一个是菜单,我希望用户选择一个按钮,它会将GameView中的图像视图更改为该图像。
我有这方面的代码,但它似乎没有工作......
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqual:@"goToGameViewsSegue"]) {
MainMenuView_4inch_White *dest = [segue destinationViewController];
dest.imageView = CloudyBlue; //set the image in your view as the image in the settings view
[dest.imageView setImage:[UIImage imageNamed:@"Cloudy-Eye-Blue.png"]];
NSLog(@"Image should have been changed here.. How come it didn't?");
}
}
我确实检查了所有的连接,如果segues已经连接好了,那就一定不行。所以一定不能这样。
答案 0 :(得分:2)
由于您正在更改目标视图控制器中的UIImageView
对象,因此您需要确保将其作为子视图添加到正确的超级视图中。
dest.imageView = CloudyBlue;
[dest.view addSubview:CloudyBlue]; // add it to the correct view and set the frame, depending on what you need.
但为了保持代码清洁和模块化,我建议在目标视图控制器中执行此类操作。让一个视图控制器与另一个视图混淆是容易出错的,我不推荐它。
例如,您可以在目标视图控制器中使用它:
- (void)setImage:(UIImage *)image
{
// 1) set up self.imageView, if necessary
// 2) set the image
self.imageView.image = image;
}