2014-12-07 3 views
0

В настоящее время я пытаюсь передать данные изображения из UIImageView на одном контроллере навигации в UIImage View другого навигационного контроллера.Как передать данные изображения?

В принципе, у меня есть viewviewcontroller, где у меня есть изображения, когда я нажимаю изображение, оно передаст его моему навигационному контроллеру 1, где у меня есть UIImageView. Я справился с этим до этого шага. Тем не менее, на моем контроллере навигации 1 у меня есть панель навигации, которая приведет меня к navigationcontoller 2, который также имеет UIImageView, и именно здесь я хочу передать одно и то же изображение с навигационного контроллера 1 - 2, но выбор будет зависеть от того, какое изображение у меня есть выбранных в виде коллекции.

Как мне его закодировать?

Извинения за любые неточности, я только начал изучать, как программировать, поэтому мои объяснения могут быть неопределенными. Поэтому, если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

Заранее благодарен!

**

Edit:

**

Мои CollectionViewController.h

@property (strong, nonatomic) NSArray *photoImages; 

CollectionViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 

UICollectionViewCell *cell = (UICollectionViewCell *)sender; 
NSIndexPath *indexPath = [self.collectionView indexPathForCell:cell]; 

PictureViewViewController *pictureViewViewController = (PictureViewViewController *)segue.destinationViewController; 
pictureViewViewController.photoImage = [UIImage imageNamed:[self.photoImages objectAtIndex:indexPath.row]]; 

}

PictureViewController.h

@property (strong, nonatomic) UIImage *photoImage; 
@property (strong, nonatomic) NSArray *photoImages; 

PictureViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
DetailedPhotoViewViewController *detailedPhotoViewViewController = [segue destinationViewController]; 
detailedPhotoViewViewController.detailPhotoImage = photoImage; 

}

DetailPhotoViewController.h

@property (strong, nonatomic) UIImage *detailPhotoImage; 

Это в PictureViewController, где я пытаюсь сформулировать правильный метод prepareForSegue, чтобы в моем DetailPhotoViewController появился тот же UIImage.

У меня есть коллекция с картинкой, которую я могу открыть, постукивая по картинке. Это передаст изображение в PictureViewController, где будет отображаться в полноэкранном режиме. На PictureViewController у меня есть кнопка на панели навигации, в которой записаны заметки и которая должна передать меня в DetailedPhotoViewController, где на картинке будет отображаться меньший вид.

Надеюсь, это немного разъясняет это и благодарит за терпение!

ответ

1

Пожалуйста, исправьте меня, если я ошибаюсь ... Я думаю, вы имеете в виду, что хотите передать UIImage, представленный в UIImageView, с одного UIViewController на другой, а затем перетащить новый в стек UINavigationController ...

Все, что вам нужно сделать, это настроить свойство UIImage на свой второй ViewController как

var myImage:UIImage? 

После этого вы можете передать UIImage из старого контроллера ко второму, как это, нажимая на второй ViewController в ваш стек UINavigationControllers.

if let theCont:SecondViewController = storyboard?.instantiateViewControllerWithIdentifier("SecondViewController") as? SecondViewController { 
      theCont.myImage = UIImage(named: "imageFromOldController") 
      self.navigationController?.pushViewController(theCont, animated: true) 
     } 

Это только один способ сделать это ... Я думаю, что это легче всего объяснить

1

совета другого автора звук, но он разместил свой код в стриже. Судя по тегам в вашем вопросе, вы работаете в Objective-C.

В Objective-C эквивалент должна установить определить свойство в контроллере вида назначения:

@property (nonatomic, strong) UIImage* myImage 

... и установите это свойство в вашем методе prepareForSegue (при условии, что вы используете раскадровку)

+0

Да, он прав, извините, я не видел цель C ... :-) –

+0

Спасибо, что ответили! Не могли бы вы объяснить мне, как мне написать метод prepareForSegue? Вот где я застрял, потому что в CollectionView я определил objectAtIndex: indexPath.row, но в NavgiationController 1 у меня есть только один UIImage. Поэтому я был смущен тем, как написать фактический код для prepareForSegue в этом NavigationController. – F90530

+0

Трудно сказать, не зная больше о структуре и функциях вашего приложения. Ваша команда prepareForSegue, вероятно, спросит, что элемент коллекции выбран и/или выбран, используйте эту информацию, чтобы получить нужное изображение, получить контроллер точки назначения из segue, применить его к своему пользовательскому классу и затем установить свойство изображения в назначение. –

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