访问父控制器中的功能

时间:2010-04-12 11:39:19

标签: iphone objective-c xcode opengl-es viewcontroller

我在XCode中为我正在制作的iPhone项目制作了一个ViewController,但是我对嵌套的ViewControllers有疑问,以及访问父ViewController函数的最佳方法是什么?

基本上,目前我有一个带有MenuViewController(嵌套)和GameViewController(嵌套,呈现OpenGL ES)的SwitchViewController。

目前,我在SwitchViewController中控制了动画视图切换功能。但我想在播放器从MenuViewController中选择级别并在GameViewController中运行相应级别后调用它。我知道,不是火箭科学。

调用父函数的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

您必须创建一个指向视图控制器父级的指针,并在将视图控制器的视图嵌套到另一个视图中时进行设置。

答案 1 :(得分:1)

我不确定我是否理解你的问题,但我会选择委托模式。将指针传递给父视图控制器作为嵌套视图控制器的委托 - 这允许您从嵌套的父类调用父类的委托方法。

答案 2 :(得分:-1)

我已经解决了,想分享我的发现。

在子视图或子视图控制器中,您可以使用以下代码作为指向其他位置的指针。

#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];
}