2015-07-20 29 views
0

如果球的UIImageView是在同一個視圖控制器,但是球是在一個單獨的視圖控制器此代碼將工作,所以它說:使用按鈕在另一個ViewController上更改UIImageView?

使用未聲明的標識符「球」

的我應該如何去具有當此視圖控制器上的操作被執行時,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"]; 
+0

最好將UIImage(或圖像名稱字符串)傳遞給有問題的視圖控制器,然後讓該viewcontroller設置UIImage。如果你不確定如何在視圖控制器之間傳遞對象,那麼在stackoverflow上每天都會問這個特定的問題,所以我確定你可以找到 – Fonix

+0

'Ball'究竟是什麼? – ErickES7

+0

球是UIImageView –

回答

0

爲此,您需要所有球的共享實例UIImageView

創建一個包含UIImageView對象的單例類,並將該類作爲子視圖添加到其他視圖控制器。

+0

我該如何去做呢? –

0

當您從一個viewController執行Segue到其他時,您可以使用prepareForSegue方法在此方法中設置UIViewImage的出口。

0

創建的UIImage對下一個視圖控制器,你想改變形象,在相同的ViewController創建的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分配給您的ImageView在NextviewController中。

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"]; 
相關問題