我正在尝试使用MWPhotoBrowser创建带有情节提要的照相馆。我在第一个视图中添加了蓝色视图,但收到错误消息

Thread 1:breakpoint 5.1:incompatible pointer types sending 'MWPhotoBrowser *' to parameter of type UIView

码:

.h文件中:

#import <Foundation/Foundation.h>
#import "RESideMenu.h"

#import "MWPhotoBrowser.h"



@interface DEMOSevenViewController : UIViewController<MWPhotoBrowserDelegate>

@property (nonatomic, strong) NSMutableArray *photos;
@property (nonatomic, strong) NSMutableArray *thumbs;

@property (strong, nonatomic) UIView *container;

- (IBAction)showMenu;

@end


.m文件中:

#import "DEMOSevenViewController.h"

@interface DEMOSevenViewController ()

@end

@implementation DEMOSevenViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
    // Custom initialization
}
return self;
}

- (void)viewDidLoad
{
[super viewDidLoad];
NSMutableArray *photos = [[NSMutableArray alloc] init];
NSMutableArray *thumbs = [[NSMutableArray alloc] init];
MWPhoto *photo;
BOOL displayActionButton = YES;
BOOL displaySelectionButtons = NO;
BOOL displayNavArrows = NO;
BOOL enableGrid = YES;
BOOL startOnGrid = NO;
photo = [MWPhoto photoWithImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"photo5" ofType:@"jpg"]]];
photo.caption = @"White Tower";
[photos addObject:photo];
photo = [MWPhoto photoWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"photo2" ofType:@"jpg"]]];
photo.caption = @"The London Eye is a giant Ferris wheel situated on the banks of the River Thames, in London, England.";
[photos addObject:photo];
photo = [MWPhoto photoWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"photo3" ofType:@"jpg"]]];
photo.caption = @"York Floods";
[photos addObject:photo];
photo = [MWPhoto photoWithImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"photo4" ofType:@"jpg"]]];
photo.caption = @"Campervan";
[photos addObject:photo];
// Thumbs
photo = [MWPhoto photoWithImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"photo5t" ofType:@"jpg"]]];
[thumbs addObject:photo];
photo = [MWPhoto photoWithImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"photo2t" ofType:@"jpg"]]];
[thumbs addObject:photo];
photo = [MWPhoto photoWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"photo3t" ofType:@"jpg"]]];
[thumbs addObject:photo];
photo = [MWPhoto photoWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]     pathForResource:@"photo4t" ofType:@"jpg"]]];
[thumbs addObject:photo];
// Options
startOnGrid = YES;
self.photos = photos;
self.thumbs = thumbs;

// Create browser
MWPhotoBrowser *browser = [[MWPhotoBrowser alloc] initWithDelegate:self];
browser.displayActionButton = displayActionButton;
browser.displayNavArrows = displayNavArrows;
browser.displaySelectionButtons = displaySelectionButtons;
browser.alwaysShowControls = displaySelectionButtons;
browser.wantsFullScreenLayout = YES;
browser.zoomPhotosToFill = YES;
browser.enableGrid = enableGrid;
browser.startOnGrid = startOnGrid;
[browser setCurrentPhotoIndex:0];
UINavigationController *nc = [[UINavigationController alloc]     initWithRootViewController:browser];
nc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:nc animated:YES];
[_container addSubview:browser];
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

#pragma mark - MWPhotoBrowserDelegate

- (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;
}

- (id <MWPhoto>)photoBrowser:(MWPhotoBrowser *)photoBrowser thumbPhotoAtIndex:    (NSUInteger)index {
if (index < _thumbs.count)
    return [_thumbs objectAtIndex:index];
return nil;
}

- (IBAction)showMenu
{
[self.sideMenuViewController presentMenuViewController];
}


@end

最佳答案

问题在这里,您要添加ViewController而不是需要View的视图。

[_container addSubview:browser];


尝试:

[_container addSubview:browser.view];


同样,也不完全确定为什么要根据代码的其余部分将其添加到NavigationController和_container中,这也可能会导致问题,但是上一件事是导致错误的原因。

09-04 04:48