iOS容器视图和父ViewController通信?

dic*_*ala 3 communication objective-c ios

如何与容器视图控制器和父视图控制器通信?我试图进行沟通并在它们之间传递价值.我在绿色视图控制器中添加了一个容器视图.我将segue名称设置为"communicSegue".我搜索了一些方法,我知道我们可以设置prepareForSegue来传递初始值.

 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
     if ([segue.identifier isEqualToString:@"communicateSegue"]) {
         NSLog(@"call prepare for segue at parent view controller");
     }
 }
Run Code Online (Sandbox Code Playgroud)

但现在我想传递值并更改不同viewcontroller中的标签.不在最初.

我不知道该怎么办?

题:

有谁知道如何实现ParentViewController传递值到Container View Controller并在ContainerViewController中显示标签?

反之,Container View Controller单击按钮然后传递值并使用objective-c更改ParentViewController中的标签show?

谢谢.

我在parentViewController.h中声明变量:#import

 @interface ParentViewController : UIViewController
 @property (weak, nonatomic) IBOutlet UITextField *parentTF;
 @property (weak, nonatomic) IBOutlet UIButton *passValToChildVCBtn;

 @property (weak, nonatomic) IBOutlet UILabel *showContainerValLB;
 @property (weak, nonatomic) IBOutlet IBAction *passValueToContainerEvent;

 @end
Run Code Online (Sandbox Code Playgroud)

在ContainerChildViewController.h #import中

 @interface ContainerChildViewController : UIViewController
 @property (weak, nonatomic) IBOutlet UILabel *showParentValLB;
 @property (weak, nonatomic) IBOutlet UITextField *childTF;
 @property (weak, nonatomic) IBOutlet UIButton *passToParentBtn;
 @property (weak, nonatomic) IBOutlet IBAction *passValueToParentBtnEvent;

 @end
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

测试项目在这里.

非常感谢你.

Ash*_*eeq 10

关于将值传递给containerView控制器,您可以在ChildViewController中创建一个您想要传递的值的属性.然后在您的ParentViewController中执行以下操作:

self.ChildViewController.yourProperty = yourValue

相反可以通过4种方式完成:

  • 您可以创建委托协议以在控制器之间传递数据.
  • 您可以在ChildViewController中发布通知,并将父控制器添加为观察者.
  • 你可以使用KVO.
  • 最简单的方法是,您可以在parentviewController中创建一个属性,并像下面一样访问它

    ((YourParentViewControllerClassType *)self.parentViewController).yourParentProperty = TheValueYouWant;
    
    Run Code Online (Sandbox Code Playgroud)