diff --git a/FRP/FRPFullSizePhotoViewModel.h b/FRP/FRPFullSizePhotoViewModel.h index 20c902d..748f75a 100644 --- a/FRP/FRPFullSizePhotoViewModel.h +++ b/FRP/FRPFullSizePhotoViewModel.h @@ -10,10 +10,11 @@ @class FRPPhotoModel; -@interface FRPFullSizePhotoViewModel : NSObject +@interface FRPFullSizePhotoViewModel : RVMViewModel --(instancetype)initWithPhotoModelArray:(NSArray *)photoModelArray initialPhotoIndex:(NSInteger)initialPhotoIndex; +@property (nonatomic, readonly, strong) RACTuple *model; +@property (nonatomic, readonly) NSArray *photoArray; @property (nonatomic, readonly) NSInteger initialPhotoIndex; @property (nonatomic, readonly) NSString *initialPhotoName; diff --git a/FRP/FRPFullSizePhotoViewModel.m b/FRP/FRPFullSizePhotoViewModel.m index a1e5e1b..54cb8b5 100644 --- a/FRP/FRPFullSizePhotoViewModel.m +++ b/FRP/FRPFullSizePhotoViewModel.m @@ -14,28 +14,22 @@ @interface FRPFullSizePhotoViewModel () -// Private access -@property (nonatomic, strong) NSArray *photoArray; -@property (nonatomic, assign) NSInteger initialPhotoIndex; - @end @implementation FRPFullSizePhotoViewModel --(instancetype)initWithPhotoModelArray:(NSArray *)photoModelArray initialPhotoIndex:(NSInteger)initialPhotoIndex { - self = [self init]; - if (!self) return nil; - - self.photoArray = photoModelArray; - self.initialPhotoIndex = initialPhotoIndex; - - return self; -} - -(NSString *)initialPhotoName { return [self.photoArray[self.initialPhotoIndex] photoName]; } +-(NSInteger)initialPhotoIndex { + return [self.model.second integerValue]; +} + +-(NSArray *)photoArray { + return self.model.first; +} + -(FRPPhotoModel *)photoModelAtIndex:(NSInteger)index { if (index < 0 || index > self.photoArray.count - 1) { // Index was out of bounds, return nil diff --git a/FRP/FRPGalleryViewController.m b/FRP/FRPGalleryViewController.m index 9f50165..b9158d2 100644 --- a/FRP/FRPGalleryViewController.m +++ b/FRP/FRPGalleryViewController.m @@ -71,7 +71,7 @@ static NSString *CellIdentifier = @"Cell"; @strongify(self); NSIndexPath *indexPath = arguments.second; - FRPFullSizePhotoViewModel *viewModel = [[FRPFullSizePhotoViewModel alloc] initWithPhotoModelArray:self.viewModel.model initialPhotoIndex:indexPath.item]; + FRPFullSizePhotoViewModel *viewModel = [[FRPFullSizePhotoViewModel alloc] initWithModel:RACTuplePack(self.viewModel.model, @(indexPath.item))]; FRPFullSizePhotoViewController *viewController = [[FRPFullSizePhotoViewController alloc] init]; viewController.viewModel = viewModel; diff --git a/FRP/FRPGalleryViewModel.m b/FRP/FRPGalleryViewModel.m index 78fad8f..9c3e0f1 100644 --- a/FRP/FRPGalleryViewModel.m +++ b/FRP/FRPGalleryViewModel.m @@ -13,8 +13,6 @@ @interface FRPGalleryViewModel () -@property (nonatomic, strong) NSArray *photosArray; - @end @implementation FRPGalleryViewModel @@ -23,7 +21,7 @@ self = [super init]; if (!self) return nil; - RAC(self, photosArray) = [[[FRPPhotoImporter importPhotos] logError] catchTo:[RACSignal empty]]; + RAC(self, model) = [[[FRPPhotoImporter importPhotos] logError] catchTo:[RACSignal empty]]; return self; } diff --git a/FRP/FRPPhotoViewController.m b/FRP/FRPPhotoViewController.m index 6303df4..3f1da05 100644 --- a/FRP/FRPPhotoViewController.m +++ b/FRP/FRPPhotoViewController.m @@ -55,7 +55,7 @@ @weakify(self); [[self rac_signalForSelector:@selector(viewDidAppear:)] subscribeNext:^(id x) { @strongify(self); - if (self.presentedViewController != nil) { + if (self.presentedViewController == nil) { [SVProgressHUD show]; [self.viewModel.loadPhotosFromNetworkCommand execute:nil];