容器视图中的视图控制器与 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" 中的方法?我听说过委托或使用选择器,但我真的不明白它们在代码中的工作方式。
提前致谢!
- 在视图控制器的接口声明中为页面视图控制器创建一个属性。
@property (nonatomic, assign) UIPageViewController *pageVC;
- 给在容器内嵌入页面 vc 的 'id',比如 segueIdentifier。
- 在视图控制器中实现
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 后,您可以直接从主视图控制器访问嵌入式页面视图控制器。
我最近才开始为 iOS(在 Objective C 中)编程。我对 iOS 编程的大多数概念都很陌生。我已经能够通过教程和 Whosebug 线程,但现在我已经 运行 陷入困境。我正在使用 Storyboard 来构建我的界面,所以现在我有这个设置:
我有一个标准 "View Controller",其中包含一个 "Container View" 和两个按钮。 Container View 嵌入了一个 "Page View Controller"。
我现在如何使用父 "View Controller" 中的按钮来执行 "Page View Controller" 中的方法?我听说过委托或使用选择器,但我真的不明白它们在代码中的工作方式。
提前致谢!
- 在视图控制器的接口声明中为页面视图控制器创建一个属性。
@property (nonatomic, assign) UIPageViewController *pageVC;
- 给在容器内嵌入页面 vc 的 'id',比如 segueIdentifier。
- 在视图控制器中实现
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 后,您可以直接从主视图控制器访问嵌入式页面视图控制器。