怎样才能获得一个超级的视图控制器?(How does one access a super'

2019-06-24 00:28发布

我有一个问题,我会尽量解释这个问题:

  1. 我有一个主要UIViewController (整个画面)
  2. 我有一个次级UIViewController (的setBounds)
  3. 我将我的二级视图我到mainView使用这样的:

     [mainController.view addSubview:secondaryController.view]; 
  4. 我创建了一个第三控制器: modalController ,我把它添加到我这样的次级控制器:

     [secondaryController presentModalViewController:modalController animated:YES]; 
  5. 我做基于我的里面的一些事件演算modelController

  6. 我能够从我发送消息modalControllersecondaryController使用:

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

    注:“自我”对应于modalController

  7. 我需要“myObject的”传递给我的mainController ,但我不能提及我mainControllersecondaryController 。 我尝试这样做:

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

    注:“自我”对应于secondaryController

    但它不工作,我有机会用我的mainController的观点: self.view.superview

    注:“自我”是我secondaryController

但没有它的控制器。

Answer 1:

在您的辅助控制器,尝试

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

并检查是否这是你要找的视图控制器。

苹果公司的文档-[UIResponder nextResponder]

的UIView通过返回管理它(如果有的话)或它的父(如果它不)所述的UIViewController对象实现此方法



文章来源: How does one access a super's view controller?