2010-10-14 3 views
0

Как создать UIImage в пределах одного диспетчера представлений, когда действие, которое я хочу инициировать созданием, является кнопкой в ​​другом диспетчере представлений?Создайте UIImage с другого контроллера представления

Так что я хотел бы иметь кнопку в viewcontroller, которая при нажатии, отклоняет это представление и создает UIImage в другом представлении.

Как это делается?

Благодаря

ответ

1

Вы можете сохранить ссылку на изображение, удерживая ВК в кнопке-холдинг VC. Например, подходит переменная экземпляра (например, otherViewController).

В первом VC вы реализуете метод, который создает новый UIImage.

-(void)createNewImage { 
    UIImage *image = [UIImage imageNamed:"image.png"]; 
} 

Во втором VC вы создаете метод, который вызывается при нажатии кнопки. В этом методе вы получаете доступ к первому VC и вызываете только что написанный метод.

-(IBAction)newImageButtonTapped:(id)sender { 
    [self.otherViewController createNewImage]; 
    [self dismissModalViewControllerAnimated:YES]; 
} 
+0

self.otherViewController вызывает запрос ошибки для membet, а не объединение или структуру. Я импортирую viewcontroller, в котором я нуждаюсь, так что это не проблема. Спасибо – jarryd

+0

Вам нужно объявить otherViewController в вашем .h файле и создать свойства. –

+0

Не добавит ли это изображение во вновь созданный вид? У меня уже есть представление, в котором я хочу, чтобы изображение отображалось. – jarryd

0

Вы должны быть более конкретными. Как вы показываете следующий контроллер вида? Вы начинаете его, а затем нажимаете?

Если вы находитесь в этом диспетчере просмотра, у вас может быть свойство BOOL (BOOL makeImage;). При создании вид толкать это сделать:

TheNextViewController *page = [[TheNextViewController alloc] initWithNibName:nil bundle:nil]; 
[page setMakeImage:YES]; 
[self.navigationController pushViewController:page animated:YES]; 

затем в viewDidLoad из TheNextViewController:

- (void)viewDidLoad{ 
    if(makeImage){ 
    // make you image here and add it to the view 
    } 
} 

Вы, возможно, придется установить другие переменные вверх, как NSString *imageName; и установить те, когда вы ...setMakeImage:YES], если вы хотите для отображения определенного изображения.

+0

Я начинаю просмотр и представляю их. – jarryd

+0

представить их модально? 'PresentModalViewController: анимированные:'? Затем используйте тот же метод, что и выше, но вместо '[self.navigationController pushViewController: анимированная страница: YES];' do '[self presentModalViewController: страница анимированная: YES];' –

+0

View 1 имеет кнопку, которая открывает view2. view2 имеет кнопку, которая при выборе должна создать UIImage в view1. Таким образом, view1 уже существует и может содержать другие данные, такие как другие UIImages, содержащие изображения. Если я создам новый, init, то setMakeImage не будет создавать новый, а затем я потеряю все мои другие данные? – jarryd

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