2013-11-13 2 views
0

У меня есть два вида: One - Gameview, а другое - меню, в котором я бы хотел, чтобы пользователь выбрал кнопку, и это изменит вид изображения в GameView на это изображение.Изменить изображение в UIImageView в другом классе

Я есть этот кусок кода для этого, но это, кажется, не работает ...

-(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?"); 

    } 
} 

я проверить через все соединения, и если был подключен в перетекает, и это все хорошо, так не должно быть.

ответ

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;  
} 
+0

Как я могу установить рамку образа Gameview? –

+1

Вы делаете это так же, как и для любого 'UIView', например. 'myImageView.frame = CGRectMake (x, y, width, height);' См. также редактирование, которое я сделал для своего ответа о лучшем месте для выполнения этих задач. – Macondo2Seattle

Смежные вопросы