我使用委托方法将数据传递回父级,并使用如下语句
[self.delegate viewControllerDismissed:data1];这个效果很好。现在我需要发送更多的数据。我能用一下
[self.delegate viewControllerDismissed:data1 with:data2];如果是的话,协议等是什么样子的?还是我只是把所有的东西都传回数组?我找不到两个参数的例子
发布于 2016-11-24 13:41:04
快速地使用数据、数组或字典示例的模型。
class Place: NSObject {
var placeId: String = ""
var primaryText: String = ""
var secondaryText: String = ""
var latitude: Double = 0
var longitude: Double = 0
}然后用创建的位置调用委托方法。
delegate?.didSelectPlace(place: placeObject)发布于 2016-11-24 13:53:29
做这件事的方法不同。
Idea #1:向委托对象的类中添加一个方法,该方法可以将所有数据作为参数。
@interface MyParentViewController : NSViewController
- (void)someDataFromTheChildVC:(NSString *)data1 moreData:(NSArray *)data2;
@end在子视图控制器中,请确保将degelate强制转换为MyParentViewController,这样就可以访问新方法:
MyParentViewController *parent = (MyParentViewController *)self.delegate;
[parent someDataFromTheChildVC:@"blah" moreData:someArray];Idea #2:将您想要传递的所有数据放入字典,然后调用您通常的viewControllerDismissed
NSDictionary *data = @{
@"data1": @"blah",
@"data2": someArray
};
[self.delegate viewControllerDismissed:data];你不需要一个协议。
https://stackoverflow.com/questions/40787842
复制相似问题