Segue dont работает вообще

Я работаю, чтобы получить правильный переход, но я не понимаю его вообще. У меня есть опыт программирования игр, но я новичок в Objective c. Я пытаюсь сделать фотографию в приложении, а затем отобразить ее на другом контроллере представления, чтобы пользователь мог ее обрезать.
Это мой Viewcontroller.h

#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. Если я использую приведенный выше код, он создается, однако приложение останавливается в тот момент, когда я нажимаю кнопку камеры.
ОБНОВЛЕНИЕ Вот сбой, который я не трогал в App Delagate.

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

2013-07-19 14:11:25.226 [4758:907] * Завершение работы приложения из-за необработанного исключения "NSInvalidArgumentException", причина: "Receiver () не имеет перехода с идентификатором "CropImage" * First throw call stack: (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: terminate called throwing an exception (lldb)


person user2590480    schedule 19.07.2013    source источник
comment
Можете ли вы опубликовать трассировку стека или ошибку в консоли для сбоя?   -  person Nicholas Hart    schedule 19.07.2013
comment
Я думаю, что некоторые ответы частично верны. Вам не нужно одновременно нажимать контроллер представления средства выбора и выполнять переход. Вы хотите сделать то или иное. Ошибка из-за сбоя указывает, что он не знает о переходе CropImage. Таким образом, ваш контроллер представления не должен иметь перехода с таким именем.   -  person Nicholas Hart    schedule 19.07.2013
comment
Так где я должен удалить? Должен ли я удалить CropViewController.theImage = picker; ? Извините, я слишком новичок в объективном c   -  person user2590480    schedule 19.07.2013


Ответы (3)


Удалите эту строку:

[self presentViewController:picker animated:YES completion:nil];
person Abdullah Shafique    schedule 19.07.2013

Я не знаю, использует ли он переход или нет, но вот - точный пример того, что вы пытаетесь достигать.

person Ravi_Parmar    schedule 19.07.2013
comment
Извините, это выглядит хорошо, но связано ли это с камерой, например, вы делаете снимок в приложении, а затем оно просто автоматически позволяет вам обрезать? - person user2590480; 19.07.2013
comment
Я мало что знаю об этой демонстрации, но я также пытаюсь добиться чего-то подобного. - person Ravi_Parmar; 19.07.2013

Нашел решение этого. Вам нужно иметь UINavigationController в вашей раскадровке. Для этого возьмите свою первую сцену, щелкните по ней и перейдите на вкладки в верхней части xcode и выполните «Редактор»> «Встроить в»> «Контроллер навигации», установите флажок, чтобы установить контроллер навигации в качестве исходной сцены. Добавьте следующий код, чтобы скрыть панель навигации вверху.

self.navigationController.navigationBar.hidden = YES;
self.navigationController.navigationBar.translucent = NO;
person Trianna Brannon    schedule 30.01.2015