如何调用父视图控制器中的函数/方法

问题描述:

我有一个MyViewController有一个UINavigationController作为子视图,并且UINavigatioController有一个CustomView弹出在堆栈上。我想要做的就是在CustomView是调用一个方法MyViewController ..所以我尝试这样做:如何调用父视图控制器中的函数/方法

UINavigationController *main = (UINavigationController*)[self parentViewController];  
MyViewController *parentContainer = (MyViewController*)[main parentViewController]; 
[parentContainer myParentMethod]; 

这段代码是不正确的。

+0

我发现这个主题,它的效果很好! http://*.com/questions/3370666/call-method-in-nested-parent-controllers – Arcadian 2011-03-05 04:06:15

parentViewController属性仅适用于导航控制器,选项卡栏控制器或模态呈现关系。尽管MyViewController对象具有UINavigationController对象的视图作为子视图,但这并不意味着MyViewController是UINavigationController对象的parentViewController。

如果您必须保持此设计并需要从CustomView对象访问MyViewController对象,则最好的方法是让CustomView对象具有对MyViewController对象的弱引用(如delegate属性)。