首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIViewController层次结构

UIViewController层次结构
EN

Stack Overflow用户
提问于 2011-12-29 01:20:55
回答 3查看 358关注 0票数 0

如果有多个视图-例如视图1、视图2、视图3、视图4和视图5,并且它们位于导航堆栈中,并且视图5是当前视图(在顶部),那么我如何在view5的控制器中访问用view3编写的方法?是否类似于在view5控制器中创建view3的控制器实例,然后调用该方法?但我认为这并不是理想的方法。这种情况下最好的方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-29 01:31:49

你可以通过访问导航控制器堆栈来访问它-

代码语言:javascript
复制
NSMutableArray *activeControllerArray = [self.navigationController.viewControllers mutableCopy];

Controller3 myController;
For(int i = 0, i <[activeControllerArray  count], i++) {
    if([[activeViewController objectAtIndex:i] isKindOfClass:[Controller3 class]) {
        myController = [activeViewController objectAtIndex:i];
     }
}

现在,您可以执行所需的操作。

票数 0
EN

Stack Overflow用户

发布于 2011-12-29 01:33:21

代码语言:javascript
复制
    NSMutableArray *controllers = [[self.navigationController.viewControllers mutableCopy] autorelease];

ABCController *controller = [controllers objectAtIndex:2]; //ABCController is the name of conroller class
[controller methodName] ;

这种方法应该是可行的

票数 0
EN

Stack Overflow用户

发布于 2011-12-29 01:33:35

我建议创建一个基类,view1、view2、...view 5将从中派生。基类将包含此方法,使其可供所有类(view1、view2等)访问。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8659106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档