我遇到了问题,我会尝试解释这个问题:

  1. 我有一个主 UIViewController (整个屏幕)
  2. 我有一个辅助 UIViewController (setbounds)
  3. 我使用以下内容将我的辅助视图添加到 mainView

    [mainController.view addSubview:secondaryController.view];   
    
  4. 我创建了第三个控制器: modalController ,我将它添加到我的辅助控制器中,如下所示:

    [secondaryController presentModalViewController:modalController animated:YES];
    
  5. 我根据 modelController 中的一些事件制作微积分。

  6. 我可以使用以下命令从 modalController 向我的 secondaryController 发送消息:

    [[self parentViewController]  performSelector : @selector(myMethodInSecondaryController:) withObject : myObject afterDelay : .5];
    

    注意:“自我”对应于 modalController

  7. 我需要传递“myObject”。到我的 mainController ,但我无法从 secondaryController 引用我的 mainController 。我试过这个:

    [[self parentViewController] performSelector : @selector(myMethodInMainController:) withObject:myObject afterDelay : .5];
    

    注意:“自我”对应于 secondaryController

    但它不起作用,我可以使用以下方法访问我的mainController视图: self.view.superview

    注意:“自我”是我的 secondaryController

  8. 但对其控制器没有。

有帮助吗?

解决方案

在辅助控制器中,尝试

id mainViewController = [self.view.superview nextResponder];

并检查这是否是您正在寻找的视图控制器。

Apple的 - [UIResponder nextResponder] 的文档:

  

UIView通过返回管理它的UIViewController对象(如果有的话)或超级视图(如果没有)来实现此方法

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top