Search code examples
iosobjective-cxcodemwphotobrowser

Unable to add multiple photo url in MWPhotoBrowser in iOS


Unable to add multiple url in for loop. how it is possible . if i can use single url without loop then its work . But not working in looping with multiple url . how can i solved this problem i tried below code :

- (NSUInteger)numberOfPhotosInPhotoBrowser:(MWPhotoBrowser *)photoBrowser {
        return _photos.count;
    }
    - (MWPhoto *)photoBrowser:(MWPhotoBrowser *)photoBrowser photoAtIndex:(NSUInteger)index {
        if (index < _photos.count)
            return [_photos objectAtIndex:index];
        return nil;
    }


    - (void)viewDidLoad
    {
        [super viewDidLoad];
        NSMutableArray *photos = [[NSMutableArray alloc] init];

        photos=[[NSMutableArray alloc]initWithObjects:@"http://gloucesterstage.com/_website/wp-content/uploads/2015/06/apples2.jpg",@"http://www.apple.com/ipad/home/images/social/og.jpg?201508031746",nil];
        MWPhoto *photo;

        for (int i=0;i<[photos count];i++) {
            photo = [MWPhoto photoWithURL:[NSURL URLWithString:photos[i]]];
            photo.caption = @"";
            [photos addObject:photo];
        }

        _photos = photos;
        MWPhotoBrowser *browser = [[MWPhotoBrowser alloc] initWithDelegate:self];
        UINavigationController *nc = [[UINavigationController alloc]     initWithRootViewController:browser];
        [browser showNextPhotoAnimated:YES];
        [browser showPreviousPhotoAnimated:YES];
        [self presentViewController:nc animated:YES completion:nil];

    }

Solution

  • It seems that you are trying to show the local photo. For that you will need to use below.

    [photos addObject:[MWPhoto photoWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"photo2l" ofType:@"jpg"]]]];
    

    Reference


    Edit 1

    As per your new update, you are using online images. Use below code.

    NSMutableArray *photos = [[NSMutableArray alloc] init];
    MWPhoto *photo;
    
    NSMutableArray *anotherArrayWhereYouHaveImages=[[NSMutableArray alloc] initWithObjects:@"http://gloucesterstage.com/_website/wp-content/uploads/2015/06/apples2.jpg",@"http://www.apple.com/ipad/home/images/social/og.jpg?201508031746",nil];
    
    for (int i=0;i<[anotherArrayWhereYouHaveImages count];i++) {
        photo = [MWPhoto photoWithURL:[NSURL URLWithString:[anotherArrayWhereYouHaveImages objectAtIndex:i]]];
        photo.caption = [NSString stringWithFormat:@"Photo %d", i];
        [photos addObject:photo];
    }
    
    self.photos = photos;
    
    // Create browser
    MWPhotoBrowser *browser = [[MWPhotoBrowser alloc] initWithDelegate:self];
    
    browser.displayActionButton = YES;
    browser.displayNavArrows = YES;
    browser.zoomPhotosToFill = NO;
    browser.navigationController.navigationBarHidden = NO;
    [browser setCurrentPhotoIndex:myPostForPhoto];
    
    CATransition *transition = [CATransition animation];
    transition.duration = 0.5;
    transition.type = kCATransitionFade;
    
    [self.navigationController.view.layer addAnimation:transition forKey:kCATransition];
    [self.navigationController pushViewController:browser animated:NO];