访问父控制器中的函数
Posted
技术标签:
【中文标题】访问父控制器中的函数【英文标题】:Accessing functions in a parent controller 【发布时间】:2010-04-12 11:39:19 【问题描述】:我在 XCode 中为我正在处理的 iPhone 项目制作了一个 ViewController,但我对嵌套的 ViewController 以及访问父 ViewController 函数的最佳方式有什么疑问?
基本上,目前我有一个带有 MenuViewController(嵌套)和 GameViewController(嵌套,渲染 OpenGL ES)的 SwitchViewController。
目前,我在 SwitchViewController 中控制了动画视图切换,它可以工作。但我想在玩家从 MenuViewController 中选择关卡并在 GameViewController 中运行适当的关卡后调用它。不是火箭科学,我知道。
调用父函数的最佳方式是什么?
【问题讨论】:
【参考方案1】:您必须创建一个指向视图控制器父级的指针,并在将视图控制器的视图嵌套在另一个视图中时设置它。
【讨论】:
【参考方案2】:我不确定我是否正确理解了您的问题,但我会采用委托模式。将指向父视图控制器的指针作为委托传递给嵌套视图控制器 - 这允许您从嵌套视图控制器调用父类上的委托方法。
【讨论】:
【参考方案3】:我已经解决了,想分享我的发现。
在子视图或子视图控制器中,您可以使用以下代码作为指向其他地方的指针。
#import "TwoViewAppDelegate.h" // import the header of the class you want to reference
- (IBAction)setRedColor:(id)sender
// Use the class name and create a pointer (in this case mainDelegate)
TwoViewAppDelegate *mainDelegate = (TwoViewAppDelegate *)[[UIApplication sharedApplication] delegate];
mainDelegate.textColor = [UIColor redColor];
[mainDelegate flipToFront];
【讨论】:
以上是关于访问父控制器中的函数的主要内容,如果未能解决你的问题,请参考以下文章
在嵌套环境中点击 childviewcontroller 中的单元格访问父级父级视图控制器的 tableview 委托