容器视图中的视图控制器与目标C中的父控制器之间的交互

时间:2016-12-08 13:29:55

标签: ios objective-c iphone uicontainerview

我最近才开始为iOS编程(在Objective C中)。我对大多数iOS编程概念都很陌生。我已经能够使用Tutorials和stackoverflow线程,但现在我遇到了问题。我正在使用Storyboard来构建我的界面,所以现在我有了这个设置:

我有一个标准的“视图控制器”,它包含一个“容器视图”和两个按钮。 Container View嵌入了“页面视图控制器”。

现在如何使用Parent“View Controller”中的按钮执行“Page View Controller”中的方法?我听说过代表团或与Selectors合作,但我真的不明白其中任何一个如何在代码中工作。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

  1. 在View控制器的界面声明中为页面视图控制器创建一个属性。
  2. @property (nonatomic, assign) UIPageViewController *pageVC;

    1. 提供一个' id' to segue将页面vc嵌入容器中,例如 segueIdentifier
    2. 在视图控制器中实现prepareForSegue方法并访问segue的目标视图控制器以将其分配给本地属性
    3.     -(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
              if ([segue.identifier isEqualToString:@"segueIdentifier"]) {
                  if ([segue.destinationViewController isKindOfClass:[UIPageViewController class]]) {
                      self.pageVC = (UIPageViewController *)segue.destinationViewController;
                  }
              }
          }
      

      执行segue后,您可以直接从主视图控制器访问嵌入式页面视图控制器。