I'm trying to send an object back to a view controller and this doesn't seem to be triggering. I'm not using segues, and I've poured through previous answers on here but they seem to either deal with segues or don't pertain to IOS 7.

I'd really appreciate any help.

Main controller.h

```
#import "Calculation.h"
@class CalculationDetailViewController;

@protocol CalculationDetailViewControllerDelegate <NSObject>

-(void)CalculationDetailViewDidCancel:(CalculationDetailViewController *)controller;
-(void)CalculationDetailView:(CalculationDetailViewController *)controller didFinishAddingItem:(Calculation *)item;

@end

#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
#import "Soil.h"
#import "Vehicle.h"

#import "SoilCreatorViewController.h"
#import "VehicleCreatorViewController.h"

@class Calculation;

@interface CalculationDetailViewController : UIViewController <UIPickerViewDataSource,UIPickerViewDelegate,CLLocationManagerDelegate,VehicleCreatorViewDelegate,SendSoilBack>{

    UIPickerView *vehiclePicker;
    NSMutableArray *vehicleArray;
    UIPickerView *soilPicker;
    NSMutableArray *soilArray;
    IBOutlet UIScrollView *scroller;
    Soil *soil;

}...

```

Main controller.m's relevant functions

```
- (IBAction)LaunchSoilView:(id)sender {

    SoilCreatorViewController *newSoilView = [[SoilCreatorViewController alloc]initWithNibName:@"SoilCreatorView" bundle:NULL];
    [self.navigationController pushViewController:newSoilView animated:YES];
}

- (void)SendSoilToCalcController:(Soil *)asoil{
    NSLog(@"received soil");
    [self.soilArray addObject:asoil];
    [self.soilPicker reloadAllComponents];
}

```

Child view's controller.h

```
#import "Soil.h"
#import <UIKit/UIKit.h>

@class SoilCreatorViewController;

@protocol SendSoilBack<NSObject>
-(void)SendSoilToCalcController:(Soil*) soil;
@property (nonatomic,weak) id<SendSoilBack> delegate;
@end

@interface SoilCreatorViewController : UIViewController

@property (weak,nonatomic) id<SendSoilBack> delegate;

```

Child controller's .m relevant function. The delegate is synthesized prior to this.

```
- (IBAction)saveButton:(id)sender {

    self.thisSoil = [[Soil alloc] init];

    _thisSoil.soilType = self.soilNameField.text;
    NSLog(@"soil  type field %@", self.soilNameField.text);
    NSLog(@"soil type: %@", _thisSoil.soilType);

    _thisSoil.frictionAngle = [self.frictionAngleValue.text integerValue];

    if ([self.soilUnitsSwitch isOn] ) {
        _thisSoil.cohesion = [self.cohesionValue.text doubleValue];
        _thisSoil.unitWeight = [self.unitWeightValue.text doubleValue];
    }else{
        _thisSoil.cohesion = [self.cohesionValue.text doubleValue];
        _thisSoil.unitWeight = [self.unitWeightValue.text doubleValue];
    }
    [delegate SendSoilToCalcController:_thisSoil];
    [self.navigationController popViewControllerAnimated:YES];
}

```