gpt4 book ai didi

objective-c - UIView 如何知道添加的 subview 的 UIViewController?

转载 作者:搜寻专家 更新时间:2023-10-30 20:08:11 24 4
gpt4 key购买 nike

在说的情况下

- (void)applicationDidFinishLaunching:(UIApplication *)application {    
...
[window addSubview:gameController.view];
...
}

gameController 的 View 如何保持与 gameController 的关联?我已经遍历了所有调试器变量,除了它属于 View Controller 的 bool 标志外,我没有看到任何关联。因此 View 被传递到 View 层次结构(不一定必须离开窗口),但 gameController 将获得诸如 shouldAutorotateToInterfaceOrientation 之类的事件。如果不是作为从 gameController.view 传递出的 UIView 中的一些隐藏引用,这将被跟踪到哪里

UIView *tmp = gameController.view;
[window addSubview:tmp];

很明显gameController知道tmp,但是那段代码后window怎么知道gameController呢?

最佳答案

UIViewController 是 UIResponder 的后代,被插入到 View 和该 View 的父 View 之间的响应者链中。因此,在由 UIViewController 管理的 View 上调用 nextResponder 将返回所述 UIViewController 实例。

这就是诸如 shouldAutorotateToInterfaceOrientation: 之类的事件如何通过 UIResponder 实例的层次结构向上传递的方式。在 figure 3.1 in the iPhone Application Programming Guide 中可以看到显示此内容的图表.

关于objective-c - UIView 如何知道添加的 subview 的 UIViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1276494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com