2014-03-01 40 views
0

首先,我很抱歉请求另一个代表团的问题。我读了很多,找不到任何处理传递一些复杂的东西...具有自定义类对象的IOS委托;将对象从模态视图传递给父视图

这就是我在做什么... 在我的应用程序,我有一个ViewController:CollisionViewController我想让用户选择两辆涉及碰撞的车辆。所有车辆都使用CoreData存储并在SelectVehicleViewController中以模态方式呈现。 SelectVehicleViewController列出使用UICollectionView的所有车辆。在CollisionViewController中,我拥有属性Vehicle1和Vehicle2,它们是描述车辆属性的自定义类。

在CollisionViewController中,我使用UIButton来让用户首先选择Vehicle1,然后从SelectVehicleViewController中选择Vehicle2以模态方式呈现。

我使用seques来确定在呈现模式SelectVehicleViewController之前哪个按钮被按下。

如何设置协议,允许用户将选定的车辆从模态视图传递到CollisionViewController中正确的车辆对象?

+0

添加相关代码示例。 – Prem

回答

0

collisionViewController应符合您的协议。

collisionViewController.h

#import "SelectVehicleViewController.h" 
@interface ContactViewController : UIViewController <SelectVehicleDelegate> 

collisionViewController.m

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqual:@"segueName"]) { 
     SelectVehicleViewController* VC = segue.destinationViewController; 
     VC.delegate = self; 
     //here you should probably send if you will select the vehicule 1 or 2 
    } 
} 

- (void)ViewController:(UIViewController *)sender 
     didUpdateData:(NSString *)value { 
    //do what you need with new data 
    //here you should have info if it is for vehicle 1 or 2 
} 

SelectVehicleViewController.h

@protocol SelectVehicleDelegate; 

@interface SelectVehicleViewController : UIViewController 

@property (nonatomic, assign) id <SelectVehicleDelegate> delegate; 

@end 

@protocol SelectVehicleDelegate <NSObject> 

- (void)ViewController:(UIViewController *)sender 
      didUpdateData:(NSString *)value;  //adapte according to what you should send back 

@end 

SelectVehicleViewController.m

//somewhere in a button click or.... 
[self.delegate ViewController:self didUpdateData:@"new value"]; 
    //in this function you should have info if it is for vehicle 1 or 2 
+0

完美。谢谢您的帮助! – BBruce

相关问题