Ios 如何将数据从表单SeetController传递到ViewController?
我正在尝试使用此软件包: 现在我的问题是,在关闭表单之后,我试图在FormSeetController和ViewController之间传递数据 以下是我迄今为止所做的尝试: 在创建表单的按钮的ViewController中:Ios 如何将数据从表单SeetController传递到ViewController?,ios,objective-c,uiviewcontroller,delegates,objective-c-blocks,Ios,Objective C,Uiviewcontroller,Delegates,Objective C Blocks,我正在尝试使用此软件包: 现在我的问题是,在关闭表单之后,我试图在FormSeetController和ViewController之间传递数据 以下是我迄今为止所做的尝试: 在创建表单的按钮的ViewController中: formSheet.didDismissCompletionHandler = ^(UIViewController *vc){ // maybe i can use UIViewController *vc as my SearchGardenView (form S
formSheet.didDismissCompletionHandler = ^(UIViewController *vc){
// maybe i can use UIViewController *vc as my SearchGardenView (form Sheet), but how?
[self formSheetDidDismissed]; // here i tryin to get the kidGardenID but its always nil;
};
这是来自FormSeetController的:
AddKid *kid = [[AddKid alloc]init];
NSArray *temp = [_responseDict valueForKey:@"ID"];
kid.kidGardenID = [temp objectAtIndex:indexPath.row];
[self mz_dismissFormSheetControllerAnimated:YES completionHandler:^(MZFormSheetController *formSheetController) {
//this block dismiss the formSheet.
}];
我需要将“kidGardenID”传递给ViewController,但它总是为零,即使在我给它一个值之后,正如上面的代码所示。。
可能是因为ViewController已经加载,当我从fortSheet返回时,它不再加载了
我需要找到一种传递数据的方法,
你能帮我吗
编辑
我尝试使用委托但未成功,未调用该委托。
这是我的代表代码:
设置代理(ViewControllerB)
设置要从VC B传回VC A的参数:
_kidGaedenID = [temp objectAtIndex:indexPath.row];
_kidGardenName = [temp1 objectAtIndex:indexPath.row];
[self.delegate addItemViewController:self didFinishWithGardenID:_kidGaedenID gardenName:_kidGardenName andCityName:_kidCityName];
在VC A上实现协议方法:
- (void)addItemViewController:(SearchGardenTable *)controller didFinishWithGardenID:(NSString *)gardenID gardenName:(NSString*)gardenName andCityName:(NSString*)cityName
{
_kidGardenID = gardenID;
_gardenName.text = gardenName;
_kidCity.text = cityName;
}
为了将详细信息传递回您的父视图控制器,您应该设置一个代理协议,该协议将完全允许您正在查找的内容 如果您以前没有创建过任何代理协议,那么一旦您阅读了本教程并多次使用它,您就会发现您经常使用它 关于这方面有很多很好的教程,尽管这里是一个很好的起点
希望这有帮助,你可以试试willDismissCompletionHandler。这是在MZFormSheetController.h文件中定义的。键入case参数presentedViewController到视图控制器(我假定为AddKid),您可以在此处访问AddKit类的属性
@property (nonatomic, copy) MZFormSheetCompletionHandler willDismissCompletionHandler;
formsheet.willDismissCompletionHandler = ^(UIViewController *presentedViewController){
((AddKid*)presentedViewController).kidGardenID // should be accessible now.
}) 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[MZNavigationView KIDGAEDENDEID]:未识别的选择器已发送到实例0x10e1907f0'
- (void)addItemViewController:(SearchGardenTable *)controller didFinishWithGardenID:(NSString *)gardenID gardenName:(NSString*)gardenName andCityName:(NSString*)cityName
{
_kidGardenID = gardenID;
_gardenName.text = gardenName;
_kidCity.text = cityName;
}
@property (nonatomic, copy) MZFormSheetCompletionHandler willDismissCompletionHandler;
formsheet.willDismissCompletionHandler = ^(UIViewController *presentedViewController){
((AddKid*)presentedViewController).kidGardenID // should be accessible now.