У меня проблема с передачей изображения, которую я не понимаю.Я хочу отобразить UIImage UIImageView на другом контроллере, если пользователь выполняет «Жест длинного нажатия».Будет показан другой контроллер, но изображение, которое я передаю, не будет отображаться.
Кнопка связана с третьим контроллером через модальную раскадровку.Там пользователь может захватить изображение.На «ОК» контроллер переключается обратно на первый, и захваченное изображение будет отображаться в UIImageView.Никаких проблем пока нет.Чтобы добиться длинных направляющих жестов нажатием на другой контроллер, я бросил жест на раскадровку и подключил к ней кнопку.Если пользователь выполняет жест, будет выполнена следующая функция:
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([[segue identifier] isEqualToString:@"toPreview"]){
PreviewViewController *pvc = (PreviewViewController *)[segue destinationViewController];
[pvc setImage:signatureView.image];
}
}
. SignatureView - это UIImageView, который отображает захваченное пользователем изображение (в данном случае подпись).функция setImage: (UIImage *) - одна из многих возможностей, которые я пробовал.
Вот код контроллера, который должен отображать изображение
@interface PreviewViewController : UIViewController
@property(nonatomic, retain) IBOutlet UIImage *previewImage;
@property (weak, nonatomic) IBOutlet UIImageView *previewImageView;
- (void) setImage:(UIImage *)image;
@end
@implementation PreviewViewController
@synthesize previewImage;
@synthesize previewImageView;
- (void) setImage:(UIImage *)image {
previewImage = image;
previewImageView.image = previewImage;
[previewImageView setNeedsDisplay];
}
...
Как я уже говорил, я пробовал много возможностей, но ничто не отображало переданный UIImage в previewImageView.Я попытался написать изображение previewImageView непосредственно с первого контроллера, я передал полный UIImageView первого контроллера, ...
Я не понимаю, в чем моя вина.Кто-нибудь может мне помочь?Я использую XCode 4.2 и iOS 5 SDK
Ben