簡體   English   中英

iOS:未加載MWPhotoBrowser圖像子類化的Viewcontroller

[英]iOS: Viewcontroller subclassed from MWPhotoBrowser-images are not loaded

我正在嘗試將MWPhotoBrowser包含在我的項目中

  1. 如樣品中所述使用時,它可以正常工作。
  2. 但是,當從MWPhotoBrowser繼承新的viewcontroller時,除空的黑色主題外,不會加載照片。
  3. 委托方法沒有被調用。 由於該控制器是MWPhotoBrowser的子類,因此我認為不需要顯式設置它。
  4. 使用情節提要,並設置其中的筆尖類。

.h文件

@interface MDRPhotoViewerController : MWPhotoBrowser
{
    NSMutableArray *_selections;
}
@property (nonatomic, strong) NSMutableArray *photos;
@property (nonatomic, strong) NSMutableArray *thumbs;
@property (nonatomic, strong) NSMutableArray *assets;
@property (nonatomic, strong) NSMutableIndexSet *optionIndices;
@property (nonatomic, strong) UITableView *tableView;

@property (nonatomic, strong) ALAssetsLibrary *ALAssetsLibrary;

- (void)loadAssets;
@end

**。m文件**

- (void)viewWillAppear:(BOOL)animated
{
   NSMutableArray *photos = [[NSMutableArray alloc] init];
    NSMutableArray *thumbs = [[NSMutableArray alloc] init];
//mwphotobrowser options setup
    BOOL displayActionButton = YES;
    BOOL displaySelectionButtons = NO;
    BOOL displayNavArrows = NO;
    BOOL enableGrid = YES;
    BOOL startOnGrid = NO;
    BOOL autoPlayOnAppear = NO;

    //loading data
    NSArray *photosDataArray = [MDRDataController GetPhotos]; //creating array
    for (NSString *urlString in photosDataArray) { //Formating the data source for images
        NSString *urlFullString = [NSString stringWithFormat:@"%@%@",KBASEURL,urlString];
        //Photos
        [photos addObject:[MWPhoto photoWithURL:[NSURL URLWithString:urlFullString]]];
        //thumbs
        [thumbs addObject:[MWPhoto photoWithURL:[NSURL URLWithString:urlFullString]]];

    }
    // Options
    self.photos = photos;
    self.thumbs = thumbs;

    // Create browser
    self.displayActionButton = displayActionButton;
    self.displayNavArrows = displayNavArrows;
    self.displaySelectionButtons = displaySelectionButtons;
    self.alwaysShowControls = displaySelectionButtons;
    self.zoomPhotosToFill = YES;
    self.enableGrid = enableGrid;
    self.startOnGrid = startOnGrid;
    self.enableSwipeToDismiss = NO;
    self.autoPlayOnAppear = autoPlayOnAppear;
    [self setCurrentPhotoIndex:0];

    // Test custom selection images
    //    browser.customImageSelectedIconName = @"ImageSelected.png";
    //    browser.customImageSelectedSmallIconName = @"ImageSelectedSmall.png";

    // Reset selections
    if (displaySelectionButtons) {
        _selections = [NSMutableArray new];
        for (int i = 0; i < photos.count; i++) {
            [_selections addObject:[NSNumber numberWithBool:NO]];
        }
    }
    self.title = @"Phots";
    //[self reloadData];
}

進行調試

考慮到mwphotobrowser的圖像模板,嘗試重新加載代碼。 在viewwillappear和viewdidload之間移動了代碼。

MWPhotoBrowser不支持這種方式嗎,或者我做錯了嗎?

對於那些后來發現這一點的人...

如果您查看MWPhotoBrowser.m,將看到各種初始化程序:

- (id)init {
if ((self = [super init])) {
    [self _initialisation];
}
return self;
}

- (id)initWithDelegate:(id <MWPhotoBrowserDelegate>)delegate {
    if ((self = [self init])) {
        _delegate = delegate;
    }
    return self;
}

- (id)initWithPhotos:(NSArray *)photosArray {
    if ((self = [self init])) {
        _fixedPhotosArray = photosArray;
    }
    return self;
}

- (id)initWithCoder:(NSCoder *)decoder {
    if ((self = [super initWithCoder:decoder])) {
        [self _initialisation];
    }
    return self;
}

問題是沒有awakeFromNib初始化程序。 最簡單的解決方案是派生項目並創建awakeFromNib初始化程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM