如何与容器视图控制器和父视图控制器通信?我试图进行沟通,并在他们之间传递价值。我在绿色视图控制器中添加了一个容器视图。我用“communicateSegue”设置了segue名称。我搜索了一些方法,我知道我们可以将prepareForSegue设置为在初始时传递值。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"communicateSegue"]) {
NSLog(@"call prepare for segue at parent view controller");
}
}
但是现在我想传递值并在其他viewcontroller中更改标签。最初不是。
我不知道该怎么办?
问题:
有谁知道如何实现ParentViewController将值传递给Container View Controller并在ContainerViewController中显示标签?
反之,Container View Controller单击按钮,然后传递值并使用Objective-C更改在ParentViewController中显示的标签?
谢谢。
我在parentViewController.h中的声明变量:
#进口
@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
在ContainerChildViewController.h中
#进口
@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
test project in the here。
非常感谢你。
最佳答案
关于将值传递到containerView控制器,您可以在ChildViewController中为要传递的值设置一个属性。然后在ParentViewController中执行以下操作:self.ChildViewController.yourProperty = yourValue
相反可以通过4种方式完成:
((YourParentViewControllerClassType *)self.parentViewController).yourParentProperty = TheValueYouWant;