如何从以前的segue传递数据到子视图控制器?

时间:2015-12-19 08:32:16

标签: ios objective-c view uiviewcontroller

我需要传递来自jQuery(document).ready(function($) { $(".works").mouseenter(function(e) { $(this).find( ".img_details" ).stop().animate({ 'bottom':'5%', 'opacity':'1'},500); e.preventDefault(); }); $( ".works").mouseleave(function(e) { $(this).find( ".img_details" ).stop().animate({ 'bottom':'100%', 'opacity':'0'},500); e.preventDefault(); }); })(jQuery);

的数据

View Controller to a child of a parent view controller.没有传递数据。

我需要在viewdidload之前传递它。

这是我如何尝试将信息从视图控制器传递给父级的子级。

prepareSegue

1 个答案:

答案 0 :(得分:3)

选项1

如果您从父级传递到子视图控制器,那么只需从父级设置childViewController的属性。

customChildViewController.someRandomProperty = @"some random value";
[self presentViewController:customChildViewController animated:YES completion:nil];

选项2

或者,您可以设置代理

第1步:在ChildViewController.h文件中设置上面的接口协议

@protocol ChildViewControllerDelegate

- (NSDictionary *) giveMeData;

@end

@interface  .....

第2步:在ChildViewController.h接口中创建委托属性

@property (strong, nonatomic) id<ChildViewControllerDelegate>delegate

第3步:在ParentViewController.h中声明委托协议

@interface ParentViewController : UIViewController <ChildViewControllerDelegate>

第4步:在ParentViewController.m中添加此方法:

- (NSDictionary *) giveMeData {
    NSMutableDictionary * dataToReturn = [[NSMutableDictionary alloc]init];
    dataToReturn[@"some"] = @"random";
    dataToReturn[@"data"] = @"here";
    return dataToReturn;
}

第5步:在启动childViewController声明委托属性之前。

childViewController.delegate = self;
[self presentViewController:childViewController animated:YES completion:nil];

第6步:在子视图控制器中,只要您想要数据添加此

NSMutableDictionary * dataFromParent = [self.delegate giveMeData];

parentVC将运行'giveMeData&#39;并返回一个NSMutableDictionary(根据你想要的任何数据进行调整)