2015-10-13 33 views
1

我正在使用this来实现ContainerViewContoller。一切正常,但我无法将数据从一个孩子ViewController传递给另一个孩子ViewContoller无法将数据从一个子Viewcontoller传递到另一个子视图控制器

CouponCodeViewController *couponVC = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"CouponCodeViewController"]; 
    [email protected]"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加载所有childVC在同一时间。现在我想通过对点击从CouponCodeViewController到CategoryViewController数据,但我不能这样做,因为viewDidLoadviewWillappearviewDidAppear不叫

CouponCodeViewController我使用这是怎么回事:

- (IBAction)skipAct:(id)sender { 

// CategoryViewController *category=[[CategoryViewController alloc]init]; 
// [email protected]"this is the data"; 

    [self.scrollMenuDelegate scrollMenuViewSelectedIndex:1]; 


} 

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

CategoryViewController我的viewDidLoadviewDidAppear未被调用。

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

+0

我有同样的问题...你有任何解决方案? –

回答

0

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

它从此控制器移出后,将其从控制器层次结构中移除。

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

+0

仍然无法在此处添加代码 – Sport

相关问题