我甚至不确定子视图是否是EAGLView,但无论如何我都会尝试解释:
在我的应用程序委托didFinishLaunchingWithOptions()函数中,我有以下代码(由于我不认为它们是必要的,所以省略了一些部分):
CGRect screenBounds = [[UIScreen mainScreen] bounds];
window = [[UIWindow alloc] initWithFrame: screenBounds];
view = [[EAGLView alloc] initWithFrame: viewBounds];
[window addSubview:view];
[window addSubview: overlayViewController.view];
[window makeKeyAndVisible];
现在,我在视图中有一些函数(EAGLView),我想从中调用overlayViewController中的一些函数。
例如,在视图中,我可能有一些功能:
-(void)doSomethingInViewController
{
// somehow call a function within overlayViewController
}
在视图中定义的那个函数中,如何访问overlayViewController中定义的函数?谢谢!
答案 0 :(得分:1)
Notifications - overlayViewController注册通知,EAGLView发布,overlayViewController接收并调用某些方法。
Delegation - 创建overlayViewController委托协议,在EAGLView中创建委托属性,直接在委托上调用委托方法(overlayViewController)
周参考 - 例如在EAGLView中创建overlayViewController类型的指定属性
您有许多此类消息传递的核心概念;)
但为什么不将EAGLView和叠加视图放在与子视图相同的控制器中?