0

我有两个视图,一个是 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 连接了,一切都很好,所以不能这样。

4

1 回答 1

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;     
}
于 2013-11-13T19:54:57.670 回答