【问题标题】:IOS Delegation with custom class objects; pass object from modal view to parent viewIOS 委托与自定义类对象;将对象从模态视图传递到父视图
【发布时间】:2014-04-03 00:13:17
【问题描述】:

首先,对于向另一个代表团提出问题,我深表歉意。我读过很多书,但找不到任何涉及传递复杂内容的内容...

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

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

我正在使用序列来确定在呈现模态 SelectVehicleViewController 之前按下了哪个按钮。

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

【问题讨论】:

  • 添加相关代码示例。

标签: ios protocols delegation


【解决方案1】:

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

【讨论】:

  • 完美。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-11
  • 2017-04-26
  • 2016-09-28
  • 2012-07-22
  • 1970-01-01
  • 2012-03-08
相关资源
最近更新 更多