ios 中有没有获取当前controller的方法?
1 yuan925 2015-05-14 15:25:51 +08:00 根据响应链模式,获取当前view的controller,可以用self.nextResponder获取 |
![]() | 2 ycge234 2015-05-14 15:46:45 +08:00 github上有个ios-category,常用的方法都有,包括这个。 |
![]() | 3 chmlai 2015-05-14 15:57:18 +08:00 什么叫当前 Controller? |
4 tsinghan OP |
![]() | 5 superleexpert 2015-05-14 17:23:40 +08:00 可以设置个单例保存 |
![]() | 6 knightlhs 2015-05-14 17:26:31 +08:00 当前 Controller 是个什么鬼?当前正在运行的 Controller 有一大堆…… 话说你的意思是获取当前主线程的 Controller?当前显示的 View 的 Controller? |
![]() | 7 metrue 2015-05-15 09:57:31 +08:00 via iPhone 当前controller?主进程所处的controller? |
![]() | 8 yanchao7511461 2015-05-16 07:44:08 +08:00 lz肯定是说当前函数所在的controller,比如函数中有一个需求判断当前controller,我猜是这样的 |
9 xunfeng 2015-05-16 10:51:50 +08:00 弄个全局变量,再controller的viewDid appear 方法中,更新当前可见的viewcontrollers (具体可以通过发送通知,或者全局变量直接更新(感觉不是很优雅)),这个方法可以获得当前程序中所有在“可见”的controller。不过貌似对于pop window就无法跟踪,可以看看文档viewDidappear在啥时候不会被调用。 |
![]() | 10 vincentxue 2015-05-16 14:01:04 +08:00 完全不明白楼主的意思,什么叫当前的 Controller,不是 self 吗,为什么要获取? |
11 zhugeafanti 2015-05-22 14:18:12 +08:00 - (UIViewController *)viewController { UIResponder *next = [self nextResponder]; do { if ([next isKindOfClass:[UIViewController class]]) { return (UIViewController *)next; } next = [next nextResponder]; } while (next != nil); return nil; } 自己用的一个view的category |