使用按钮在另一个ViewController上更改UIImageView?

时间:2015-07-20 04:47:17

标签: ios objective-c xcode uiimageview viewcontroller

如果Ball UIImageView位于同一个View Controller上但Ball位于单独的View Controller上,则此代码可以正常工作,因此它说:

使用未声明的标识符'Ball'

当实施此视图控制器上的操作时,我应该如何更改Ball的图像?

}
-(IBAction)BallSelect2:(id)sender{
    Ball.image = [UIImage imageNamed:@"ball2fire.png"];

}
-(IBAction)BallSelect3:(id)sender{
    Ball.image = [UIImage imageNamed:@"ball70color.png"];

}
-(IBAction)BallSelect4:(id)sender{
    Ball.image = [UIImage imageNamed:@"sawball.png"];

4 个答案:

答案 0 :(得分:0)

为此,您需要为所有人提供Ball UIImageView的共享实例。

创建一个包含UIImageView对象的单例类,并将该类作为子视图添加到其他视图控制器。

答案 1 :(得分:0)

当你从一个viewController到另一个viewController执行Segue时,你可以使用prepareForSegue方法在这个方法中设置UIViewImage的出口。

答案 2 :(得分:0)

在下一个视图控制器上创建UIImage的属性,在那里你要更改图像并在同一个视图控制器上创建UIImage的本地对象,并在相应的按钮点击上传递图像名称

 -(IBAction)buttonActions:(UIButton *)sender
 {
    switch (sender.tag) {
    case 0:
        ball_Image = [UIImage imageNamed:@"ball2fire.png"];
        break;
    case 0:
        ball_Image = [UIImage imageNamed:@"ball70color.png"];
        break;
    case 0:
        ball_Image = [UIImage imageNamed:@"sawball.png"];
        break;

    default:
        break;
   }
 }
 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender        {
         NextViewController *objnext = [segue destinationViewController];
         objnext.ballImage =ball_Image.image;
}

并将该ballImage分配给NextviewController中的imageview。

答案 3 :(得分:0)

使用代表。设置代理

// -- declare this on SecondViewController.h
id delegate;

// -- on FirstViewController after you instantiate SecondViewController set the delegate
    secondViewController.delegate = self;

然后在SecondViewController上你可以调用。

(FirstViewController*)self.delegate.Ball setImage["your_image"];