我正在尝试制作一款使用photobrowser的应用 决定使用MWPhotoBrowser。
这是代码,但我似乎无法使其工作:
ViewController.h
#import <UIKit/UIKit.h>
#import "MWPhotoBrowser.h"
@interface ViewController : UIViewController<MWPhotoBrowserDelegate> {
NSArray *_photos;
UISegmentedControl *_segmentedControl;
}
@property (nonatomic, retain) NSArray *photos;
- (IBAction)billede:(id)sender;
@end
ViewController.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize photos = _photos;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
UIBarButtonItem *item = [[[UIBarButtonItem alloc] initWithCustomView:_segmentedControl] autorelease];
self.navigationItem.rightBarButtonItem = item;
self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil] autorelease];
}
return self;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (IBAction)billede:(id)sender {
//show your photo whit url
NSMutableArray *photos = [[NSMutableArray alloc] init];
MWPhoto *photo;
{
photo = [MWPhoto photoWithFilePath:[[NSBundle mainBundle] pathForResource:@"photo2l" 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];
}
self.photos = photos;
// Create browser
MWPhotoBrowser *browser = [[MWPhotoBrowser alloc] initWithDelegate:self];
browser.displayActionButton = YES;
//browser.wantsFullScreenLayout = NO;
//[browser setInitialPageIndex:2];
// Show
if (_segmentedControl.selectedSegmentIndex == 0) {
// Push
[self.navigationController pushViewController:browser animated:YES];
} else {
// Modal
UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:browser];
nc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:nc animated:YES];
[nc release];
}
}
#pragma mark - MWPhotoBrowserDelegate
- (NSUInteger)numberOfPhotosInPhotoBrowser:(MWPhotoBrowser *)photoBrowser {
return _photos.count;
}
- (MWPhoto *)photoBrowser:(MWPhotoBrowser *)photoBrowser photoAtIndex: (NSUInteger)index {
if (index < _photos.count)
return [_photos objectAtIndex:index];
return nil;
}
@end
我曾尝试使用ARC和ES
没有ARC我得到3个错误:
架构i386的未定义符号: “_ OBJC_CLASS _ $ _ MWPhoto”,引自: ViewController.o中的objc-class-ref “_ OBJC_CLASS _ $ _ MWPhotoBrowser”,引自: ViewController.o中的objc-class-ref ld:找不到架构i386的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
使用ARC我得到2个错误
问题1 http://i.imgur.com/pT7qW.png
问题2 http://i.imgur.com/E0X1m.png
我没有在这里完成,但我希望它包含在按钮中,以便我可以点击它并在MWPhotoBrowser中显示图像
修改
我已升级了我的代码,从我的文件中删除了ARC,现在我已将目标设置为正确。 它现在会编译,但每次我都可以点击按钮:“billede”我得到:
2012-11-26 23:32:10.955 MWPhotoBrowserTest[10405:c07] -[ViewController galleri:]: unrecognized selector sent to instance 0x947fb20
2012-11-26 23:32:10.957 MWPhotoBrowserTest[10405:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ViewController galleri:]: unrecognized selector sent to instance 0x947fb20'
*** First throw call stack:
(0x1d34012 0x14e9e7e 0x1dbf4bd 0x1d23bbc 0x1d2394e 0x14fd705 0x434920 0x4348b8 0x4f5671 0x4f5bcf 0x4f4d38 0x46433f 0x464552 0x4423aa 0x433cf8 0x1f6ddf9 0x1f6dad0 0x1ca9bf5 0x1ca9962 0x1cdabb6 0x1cd9f44 0x1cd9e1b 0x1f6c7e3 0x1f6c668 0x43165c 0x1e2d 0x1d55)
libc++abi.dylib: terminate called throwing an exception
(lldb)
答案 0 :(得分:1)
附件1: 您不能将对象添加到NSArray,而是使用NSMutableArray。
附件2: UIView没有方法“reloadData”,但是对于例如UITableView来说。
答案 1 :(得分:0)
实际上解决了这个问题。 我已经挣扎了4天,终于得到了它。 我通过https://github.com/mwaterfall/MWPhotoBrowser#method-1-static-library阅读并理解它,但最后我遇到了用户标题搜索路径的问题。 我终于得到了它,将MWPhotoBrowser文件夹导入我的MWPhotoBrowser“project”文件夹,然后将用户标题搜索路径设置为“..”而不是“../ ”,因为“../”给了我“ ../的 ../ 强>“
希望这可以帮助任何可能和我一样存在问题的人!
不过,谢谢你的帮助! : - )