2013-07-19 58 views
0

我正在努力獲得賽格右,但我沒有得到它。我在遊戲編程方面有經驗,但是在客觀上是初學者。我試圖在應用中拍照,然後將其顯示到另一個視圖控制器上,以便用戶可以裁剪它。
這是我Viewcontroller.h塞格dosent工作在所有

#import <UIKit/UIKit.h> 
#import "CropViewController.h" 
@interface ViewController : UIViewController <UIImagePickerControllerDelegate, 
UINavigationControllerDelegate> { 
UIImagePickerController *picker; 
UIImage *image; 
IBOutlet UIImageView *imageview; 
CropViewController *cropVC; 
} 
- (IBAction)TakePhoto; 

我Viewcontroller.m是

#import "ViewController.h" 
#import "CropViewController.h" 

@interface ViewController() 
@end 
@implementation ViewController 
-(IBAction)TakePhoto { 
picker = [[UIImagePickerController alloc]init]; 
picker.delegate = self; 
[picker setSourceType:UIImagePickerControllerSourceTypeCamera]; 
[self presentViewController:picker animated:YES completion:nil]; 
[self performSegueWithIdentifier:@"CropImage" sender:self]; 
} 
- (void)imagePickerControllerDidCancel :(UIImagePickerController *)picker { 
[self dismissViewControllerAnimated:YES completion:NULL]; 
} 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
if([segue.identifier isEqualToString:@"CropImage"]) 
{ 
    CropViewController *CropViewController = segue.destinationViewController; 
    CropViewController.theImage = picker; 
    // Similar to [segue.destinationViewController setTheImage:yourImage]; 
} 
} 
-(void)createDirectory:(NSString *)ShoesDirectory atFilePath:(NSString *)filePath 
{ 
NSString *filePathAndDirectory = [filePath stringByAppendingPathComponent:ShoesDirectory]; 
NSError *error; 

if (![[NSFileManager defaultManager] createDirectoryAtPath:filePathAndDirectory 
           withIntermediateDirectories:NO 
               attributes:nil 
                error:&error]) 
{ 
    NSLog(@"Create directory error: %@", error); 
} 
} 

我CropViewController是

@interface CropViewController : UITableViewController 
@property (nonatomic, retain) UIImage *theImage; 
@property UIImage *picker; 

我希望用戶按下相機按鈕,在視圖控制器,然後拍照,然後將圖片顯示到CopViewController所在的位置和UImageView。如果我使用上面的代碼,它會生成,但是當我按下「相機」按鈕時,應用程序會停止。
更新這裏是我沒碰應用Delagate

@autoreleasepool { 
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 

2013年7月19日14墜毀:11:25.226 [4758:907] *終止應用程序由於未捕獲的 異常 'NSInvalidArgumentException' ,原因: '接收器 ()具有標識符 沒有賽格瑞 'CropImage'' *第一擲調用堆棧:(0x343192a3 0x3bffd97f 0x3632ce31 0x891ef 0x3620c0c5 0x3620c077 0x3620c055 0x3620b90b 0x3620be01 0x361345f1 0x36121801 0x3612111b 0x37e285a3 0x37e281d3 0x342ee173 0x342ee117 0x342ecf99 0x3425febd 0x3425fd49 0x37e272eb 0x36175301 0x88eed 0x3c434b20)的libC++ abi.dylib:終止叫做拋出異常 (LLDB)

+0

你可以發佈堆棧跟蹤或控制檯中的錯誤崩潰? –

+0

我更新了我的帖子 – user2590480

+0

我認爲一些答案是部分正確的。您不需要同時推送選取器視圖控制器*和*執行一個segue。你想要做一個或另一個。崩潰的錯誤表明它不知道segue「CropImage」。所以你的視圖控制器不能有這個名字。 –

回答

0

取出這一行:

[self presentViewController:picker animated:YES completion:nil]; 
0

我不知道羯羊它使用segue或不,但here是你正在努力實現的確切例子。

+0

對不起,這看起來不錯,但是這是與相機連接,所以就像你在應用程序內拍照,然後它自動讓你裁剪? – user2590480

+0

我對這個演示不太瞭解,但也試圖達到類似的目的。 –

0

找到了解決辦法。你需要在故事板中有一個UINavigationController。要做到這一點,先進入第一個場景,點擊它並轉到xcode頂部的選項卡,然後執行編輯器>嵌入>導航控制器,檢查按鈕以將導航控制器設置爲初始場景。添加以下代碼以隱藏頂部的導航欄。

self.navigationController.navigationBar.hidden = YES; 
self.navigationController.navigationBar.translucent = NO;