我怎样才能将数据从父视图控制器传递给子视图控制器?
我怎样才能将数据从父视图控制器传递给子视图控制器?
我试图与代表这样做。 但我不认为这是一个选项?
选项1
如果您从父项传递给子视图控制器,则只需从父项设置您的childViewController的属性。
customChildViewController.someRandomProperty = @"some random value"; [self presentViewController:customChildViewController animated:YES completion:nil];
选项2
或者,您可以设置一个委托
第一步:在ChildViewController.h文件的接口上面设置协议
@protocol ChildViewControllerDelegate - (NSDictionary *) giveMeData; @end @interface .....
第2步:在ChildViewController.h接口中创build委托属性
@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];
父VC会运行'giveMeData'并返回一个NSMutableDictionary(调整你想要的任何数据)
你可以通过以下方式访问你的子视图控
NSArray *children = self.childViewControllers;