2014-09-23 71 views
0

我有我的第一个视图控制器imageResults和在调用MWPhotoBrowser与下面的代码。我看到它使用self.photos中的数据显示一个新的视图控制器。我尝试了一些添加更多数据的选项,但没有成功。我希望能够在新视图中加载更多的数据并将其添加到相片浏览器,添加更多的数据部分已经不这样做,现在我如何设置当前浏览器来加载新数组而不丢失当前位置?添加照片到MWPhotoBrowser

-(void)mvTouched:(NSIndexPath *)indexPath { 
    NSLog(@"Arr:%lu Url:%lu", [titlesMutable count], [mediaUrlDict count]); 

    NSMutableArray *tmpPhotos = [NSMutableArray array]; 
    for(NSString *titleString in titlesMutable) { 
     NSString *url = [mediaUrlDict objectForKey:titleString]; 
     MWPhoto *currentPhoto = [MWPhoto photoWithURL:[NSURL URLWithString:url]]; 
     currentPhoto.caption=[NSString stringWithFormat:@"%@", titleString]; 
     [tmpPhotos addObject:currentPhoto]; 
     //[tmpPhotos addObject:[MWPhoto photoWithURL:[NSURL URLWithString:url]]]; 

    } 
    self.photos = [NSArray arrayWithArray:tmpPhotos]; 


    MWPhotoBrowser *browser = [[MWPhotoBrowser alloc] initWithDelegate:self]; 

    // Set options 
    browser.displayActionButton = YES; // Show action button to allow sharing, copying, etc (defaults to YES) 
    browser.displayNavArrows = YES; // Whether to display left and right nav arrows on toolbar (defaults to NO) 
    browser.displaySelectionButtons = NO; // Whether selection buttons are shown on each image (defaults to NO) 
    browser.zoomPhotosToFill = YES; // Images that almost fill the screen will be initially zoomed to fill (defaults to YES) 
    browser.alwaysShowControls = YES; // Allows to control whether the bars and controls are always visible or whether they fade away to show the photo full (defaults to NO) 
    browser.enableGrid = YES; // Whether to allow the viewing of all the photo thumbnails on a grid (defaults to YES) 
    browser.startOnGrid = NO; // Whether to start on the grid of thumbnails instead of the first photo (defaults to NO) 
    browser.edgesForExtendedLayout = YES; 
    browser.extendedLayoutIncludesOpaqueBars = YES; 

    // Optionally set the current visible photo before displaying 
    //[browser setCurrentPhotoIndex:1]; 
    [browser setCurrentPhotoIndex:indexPath.row]; 

    self.navigationController.navigationBar.hidden=NO; 
    // Present 
    [self.navigationController pushViewController:browser animated:YES]; 

    // Manipulate 
    [browser showNextPhotoAnimated:YES]; 
    [browser showPreviousPhotoAnimated:YES]; 
    //[browser setCurrentPhotoIndex:1]; 
    [browser setCurrentPhotoIndex:indexPath.row]; 


    [browser reloadData]; 
} 
-(void)loadMore { 
    [self addDataToArray]; 
    //[self mvTouched:nil]; 



    [self.collectionView reloadData]; 

} 
- (NSUInteger)numberOfPhotosInPhotoBrowser:(MWPhotoBrowser *)photoBrowser { 
    return _photos.count; 
} 

- (id <MWPhoto>)photoBrowser:(MWPhotoBrowser *)photoBrowser photoAtIndex:(NSUInteger)index { 
    if (index < _photos.count) 
     return [_photos objectAtIndex:index]; 
    return nil; 
} 
- (void)photoBrowser:(MWPhotoBrowser *)photoBrowser actionButtonPressedForPhotoAtIndex:(NSUInteger)index { 
    // Do your thing! 

    NSLog(@"ACTION!!!"); 
} 
+0

我有点处理同样的问题。然而,除此之外,还有一个问题是在浏览器中加载更多数据的方法。我需要它,以便当我到达(在你的情况下)_photos.count在浏览器中它会加载其他图像。 – user2197126 2015-01-14 20:14:54

回答

5

调用[self.collectionView reloadData]将只重新加载当前视图的集合,而不是MWPhotoBrowser's。你需要调用浏览器reloadData函数这个像这样的工作:

[browser reloadData] 

注意的是,目前与调用此方法后浏览器集合视图不显示新的照片的问题。我设法通过将此代码添加到在MWPhotoBrowser.m文件中找到的reloadData方法解决此问题:

if (_gridController) { 
    [_gridController.collectionView reloadData]; 
}