iOS Container View 和 Parent ViewController 通信?

标签 ios objective-c communication

如何与容器 View Controller 和父 View Controller 通信?我试图进行交流并在它们之间传递值。我在绿色 View Controller 中添加了一个容器 View 。我用“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 中显示标签?

反过来,容器 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

enter image description here

test project in the here .

非常感谢。

最佳答案

关于将值传递给 containerView Controller ,您可以在 ChildViewController 中为您希望传递的值创建一个属性。然后在您的 ParentViewController 中执行如下操作:

self.ChildViewController.yourProperty = yourValue

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

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

    ((YourParentViewControllerClassType *)self.parentViewController).yourParentProperty = TheValueYouWant;
    

关于iOS Container View 和 Parent ViewController 通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28804486/

相关文章:

ios - UITableView indexPath 弄乱了我的数组

iphone - 自定义单元格中的自定义表格 View 单元格选择颜色

iOS/objective-C : Store Decimal as NSNumber in CoreData

iphone - 如何复制不同选项卡中的数组对象

c# - 对于 Java 和 C# 来说,什么是好的通信层?

ios - Controller 中的 UIView 触摸事件

iphone - iOS:选择照片后如何在 View 之间切换?

objective-c - Cocoa App - 当应用程序未聚焦时获取键盘事件

c# - 主人对他们的奴隶真正了解多少?

multithreading - 使用 SendMessage 的线程通信