【问题标题】:Interaction between View Controller in Container View and Parent Controller in Objective C容器视图中的视图控制器与 Objective C 中的父控制器之间的交互
【发布时间】:2016-12-08 13:29:55
【问题描述】:

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

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

我现在如何使用父“视图控制器”中的按钮来执行“页面视图控制器”中的方法?我听说过委托或使用选择器,但我真的不明白它们在代码中是如何工作的。

提前谢谢你!

【问题讨论】:

标签: ios objective-c iphone uicontainerview


【解决方案1】:
  1. 在视图控制器的接口声明中为页面视图控制器创建一个属性。

@property (nonatomic, assign) UIPageViewController *pageVC;

  1. 为在容器中嵌入页面 vc 的 segue 提供一个“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 执行后,您可以直接从主视图控制器访问嵌入式页面视图控制器。

【讨论】:

  • 由于某种原因,代码块拒绝在我的回答中采用正确的code 格式。
  • 我知道已经有一段时间了,但这个答案是正确的,我忘记将其标记为这样,只是通过我的 SO 配置文件再次找到它。很抱歉!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-03
相关资源
最近更新 更多