无法将数据从一个子视图控制器传递到另一个子视图控制器



我用它来实现ContainerViewContoller。一切都很好,但我无法将数据从一个孩子ViewController传递到另一个孩子ViewContoller

CouponCodeViewController *couponVC = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"CouponCodeViewController"];
    couponVC.coponcode=@"this is data";
    couponVC.title = @"Enter Coupon Code";
    [couponVC viewWillAppear:true];
CategoryViewController *categoryVC = [self.storyboard instantiateViewControllerWithIdentifier:@"CategoryViewController"];
    categoryVC.title = @"Choose A Category";

 YSLContainerViewController *containerVC =
    [[YSLContainerViewController alloc]
     initWithControllers:@[couponVC,categoryVC]
     topBarHeight:statusHeight + navigationHeight
     parentViewController:self];

当我调用我的容器ViewController时,它同时加载所有的子dvc。现在我想将点击时的数据从CouponCodeViewController传递给CategoryViewController但我不能这样做因为viewDidLoad viewWillappearviewDidAppear没有被调用

CouponCodeViewController我要使用这个:

- (IBAction)skipAct:(id)sender {
//    CategoryViewController *category=[[CategoryViewController alloc]init];
//    category.userInput=@"this is the data";
    [self.scrollMenuDelegate scrollMenuViewSelectedIndex:1];

}
#pragma mark -- YSLContainerViewControllerDelegate
- (void)containerViewItemIndex:(NSInteger)index currentController:(UIViewController *)controller
{
    [controller viewWillAppear:YES];
}

CategoryViewController中我的viewDidLoadviewDidAppear没有被调用。

如何将数据从childdvc传递到另一个childdvc。

那是因为当你初始化所有控制器时,父控制器不会做'addChildViewController'。它只在显示新控制器时才这样做(我已经查看了代码)。

当它离开这个控制器后,它将从控制器层次结构中移除。

我将使用委托或通知来传递数据。另一个选项(我不喜欢)是给优惠券控制器一个来自categoryViewController的引用。

最新更新