我正在使用委托方法使用诸如
之类的语句将数据传回父级[self.delegate viewControllerDismissed:data1];
这很有效。现在我需要发送更多数据。我可以使用像
这样的东西吗?[self.delegate viewControllerDismissed:data1 with:data2];
如果是这样,协议等是什么样的?或者我只是通过和数组传递一切?我找不到任何带有两个参数的例子
答案 0 :(得分:2)
使用swift我正在使用的数据模型或数组或字典示例
class Place: NSObject {
var placeId: String = ""
var primaryText: String = ""
var secondaryText: String = ""
var latitude: Double = 0
var longitude: Double = 0
}
然后用创建的地方调用委托方法
delegate?.didSelectPlace(place: placeObject)
答案 1 :(得分:0)
执行此操作的不同方法。
想法#1:在委托对象的类中添加一个方法,该方法可以将所有数据作为参数。
@interface MyParentViewController : NSViewController
- (void)someDataFromTheChildVC:(NSString *)data1 moreData:(NSArray *)data2;
@end
在子视图控制器中,确保将degelate转换为MyParentViewController
,以便您可以访问新方法:
MyParentViewController *parent = (MyParentViewController *)self.delegate;
[parent someDataFromTheChildVC:@"blah" moreData:someArray];
创意#2:将您要传递的所有数据放回字典中,然后拨打您的常用viewControllerDismissed
:
NSDictionary *data = @{
@"data1": @"blah",
@"data2": someArray
};
[self.delegate viewControllerDismissed:data];
你不需要这个协议。