如何访问超级视图控制器?
-
06-07-2019 - |
题
我遇到了问题,我会尝试解释这个问题:
- 我有一个主
UIViewController
(整个屏幕) - 我有一个辅助
UIViewController
(setbounds) -
我使用以下内容将我的辅助视图添加到
mainView
:[mainController.view addSubview:secondaryController.view];
-
我创建了第三个控制器:
modalController
,我将它添加到我的辅助控制器中,如下所示:[secondaryController presentModalViewController:modalController animated:YES];
-
我根据
modelController
中的一些事件制作微积分。 -
我可以使用以下命令从
modalController
向我的secondaryController
发送消息:[[self parentViewController] performSelector : @selector(myMethodInSecondaryController:) withObject : myObject afterDelay : .5];
注意:“自我”对应于
modalController
-
我需要传递“myObject”。到我的
mainController
,但我无法从secondaryController
引用我的mainController
。我试过这个:[[self parentViewController] performSelector : @selector(myMethodInMainController:) withObject:myObject afterDelay : .5];
注意:“自我”对应于
secondaryController
但它不起作用,我可以使用以下方法访问我的mainController视图:
self.view.superview
注意:“自我”是我的
secondaryController
醇>
但对其控制器没有。
解决方案
在辅助控制器中,尝试
id mainViewController = [self.view.superview nextResponder];
并检查这是否是您正在寻找的视图控制器。
Apple的 - [UIResponder nextResponder]
的文档:
UIView通过返回管理它的UIViewController对象(如果有的话)或超级视图(如果没有)来实现此方法
不隶属于 StackOverflow