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

Interaction between View Controller in Container View and Parent Controller in Objective C

我最近才开始为 iOS(在 Objective C 中)编程。我对 iOS 编程的大多数概念都很陌生。我已经能够通过教程和 Whosebug 线程,但现在我已经 运行 陷入困境。我正在使用 Storyboard 来构建我的界面,所以现在我有这个设置:

我有一个标准 "View Controller",其中包含一个 "Container View" 和两个按钮。 Container View 嵌入了一个 "Page View Controller"。

我现在如何使用父 "View Controller" 中的按钮来执行 "Page View Controller" 中的方法?我听说过委托或使用选择器,但我真的不明白它们在代码中的工作方式。

提前致谢!

  1. 在视图控制器的接口声明中为页面视图控制器创建一个属性。

@property (nonatomic, assign) UIPageViewController *pageVC;

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

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