diff --git a/FRP/FRPPhotoViewController.m b/FRP/FRPPhotoViewController.m index 2e6154a..0b0a57e 100644 --- a/FRP/FRPPhotoViewController.m +++ b/FRP/FRPPhotoViewController.m @@ -51,11 +51,12 @@ [self.view addSubview:imageView]; self.imageView = imageView; - [[self.viewModel.didBecomeActiveSignal take:1] subscribeCompleted:^{ - [SVProgressHUD show]; - }]; - [RACObserve(self.viewModel, photoImage) subscribeNext:^(id _){ - [SVProgressHUD dismiss]; + [RACObserve(self.viewModel, loading) subscribeNext:^(NSNumber *loading){ + if (loading.boolValue) { + [SVProgressHUD show]; + } else { + [SVProgressHUD dismiss]; + } }]; } diff --git a/FRP/FRPPhotoViewModel.h b/FRP/FRPPhotoViewModel.h index 0b94b4c..e929150 100644 --- a/FRP/FRPPhotoViewModel.h +++ b/FRP/FRPPhotoViewModel.h @@ -15,6 +15,7 @@ @property (nonatomic, readonly) FRPPhotoModel *model; @property (nonatomic, readonly) UIImage *photoImage; +@property (nonatomic, readonly, getter = isLoading) BOOL loading; -(NSString *)photoName; diff --git a/FRP/FRPPhotoViewModel.m b/FRP/FRPPhotoViewModel.m index 2efaddd..55f2e52 100644 --- a/FRP/FRPPhotoViewModel.m +++ b/FRP/FRPPhotoViewModel.m @@ -15,6 +15,7 @@ @interface FRPPhotoViewModel () @property (nonatomic, strong) UIImage *photoImage; +@property (nonatomic, assign, getter = isLoading) BOOL loading; @end @@ -46,9 +47,14 @@ #pragma mark - Private Methods -(void)downloadPhotoModelDetails { + self.loading = YES; + + @weakify(self); [[FRPPhotoImporter fetchPhotoDetails:self.model] subscribeError:^(NSError *error) { NSLog(@"Could not fetch photo details: %@", error); } completed:^{ + @strongify(self); + self.loading = NO; NSLog(@"Fetched photo details."); }]; }