如何访问超级视图控制器?

问题描述:

我有一个问题,我会尽量解释这个问题:如何访问超级视图控制器?

  1. 我有一个主要的UIViewController(全屏幕)
  2. 我有一个二次UIViewController(的setBounds)
  3. 我说我的次要视图我mainView以此来:

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

    [secondaryController presentModalViewController:modalController animated:YES]; 
    
  5. 我做基于某些事件演算我modelController内。

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

    [[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

    注意:“self”is my secondaryController

,但不对其控制器。

在您的辅助控制器,尝试

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

和检查,如果这是你要找的视图控制器。

苹果的-[UIResponder nextResponder]文档:

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

+1

感谢尼古拉!!!!!!!!!!!!!!!!! 这工作完美:) 谢谢 从瓜达拉哈拉墨西哥的问候! Alejandra :) – Alejandra 2009-06-23 20:04:22