我有一個prepareforsegue方法,拍攝一張照片並在不同的視圖控制器上顯示它。所以我需要在圖片顯示的同時在第二個控制器上設置一個標籤,稍後我會在該標籤上做一個隨機的字母生成器,但現在我只需要設置標籤。我試圖把它放在prepareforsegue方法中,但它給了我一個錯誤。這裏是我的所有代碼:Prepareforsegue設置標籤
//ViewController.m
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"CameraSegue"] || [segue.identifier isEqualToString:@"LibrarySegue"])
{
UIImagePickerController *controller = [segue destinationViewController];
controller.sourceType = [segue.identifier isEqualToString:@"LibrarySegue"] ? UIImagePickerControllerSourceTypePhotoLibrary : UIImagePickerControllerSourceTypeCamera;
controller.delegate = self;
}
else if([segue.identifier isEqualToString:@"ShowImageViewController"]){
UIImage *image = (UIImage*)sender;
ShowImageViewController *viewController = segue.destinationViewController;
viewController.pickedImage = image;
UILabel *label = (UILabel *) sender;
ShowImageViewController *vc = segue.destinationViewController;
vc.cap = label;
//I tried to set the label here
label.text = @"Hello";
}
}
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
[self dismissViewControllerAnimated:YES completion:nil];
}
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
[self dismissViewControllerAnimated:YES completion:^{
picker.delegate = nil;
[self performSegueWithIdentifier:@"ShowImageViewController" sender:image];
}];
}
//SeconViewController.h
@property(nonatomic, strong) UIImage *pickedImage;
@property (weak, nonatomic) IBOutlet UIImageView *pickedImageView;
@property(nonatomic, retain) IBOutlet UILabel *cap;
//SecondViewController.m
-(void)viewWillAppear:(BOOL)animated{
self.pickedImageView.image = self.pickedImage;
}
什麼是你的錯誤?你聲明瞭兩個'ShowImageViewController'實例'viewController'和'vc'其中之一就夠了,放這行'label.text = @「Hello」;''在'vc.cap = label;' –
這是SIGABRT錯誤,它也沒有工作..我試着約翰說,現在沒有錯誤,但仍然沒有顯示標籤 – emiliomarin