У меня есть контроллер представления с UIScrollView с кучей UIImageViews в качестве подпредставлений. Существует переход к другому контроллеру представления, но я хочу повторно использовать UIImages, которые уже находятся в памяти, а не загружать их снова для эффективности. Но если я укажу мой новый UIImageView на существующий, ничего не появится.
Мне пришлось использовать переменную промежуточного указателя (imageViewPointer), как если бы я назначал ее непосредственно в методе prepareForSegue, NSLog из каждого контроллера представления будет показывать разные адреса. Этот обходной путь NSLogs показывают тот же адрес, но все равно ничего не появляется.
Если вместо этого использовать переназначение свойства .image, изображение появляется, но изображения с первого контроллера представления загружаются асинхронно, поэтому свойство .image может измениться.
На первый взгляд контроллер
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NextViewController *nextViewController = [segue destinationViewController];
nextViewController.imageViewPointer = [[myScrollView subviews] objectAtIndex:myIndex];
NSLog(@"%@", [[myScrollView subviews] objectAtIndex:myIndex]);
}
Во втором представлении контроллер
@interface nextViewController : UIViewController
@property (retain, nonatomic) IBOutlet UIImageView *imageView;
@property (retain, nonatomic) UIImageView *imageViewPointer;
@implementation nextViewController
@synthesize imageView, imageViewPointer;
{
self.imageView = self.imageViewPointer;
// [self.imageView setNeedsDisplay]; Doesn't help
NSLog(@"IMAGE VIEW POINTER = %@", self.imageViewPointer);
NSLog(@"IMAGE VIEW = %@", self.imageView);
[super viewDidLoad];
}