在不同的类中更改UIImageView中的图像

时间:2013-11-13 19:51:01

标签: ios objective-c uiimageview

我有两个视图,一个是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已经连接好了,那就一定不行。所以一定不能这样。

1 个答案:

答案 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;     
}