-------------获取当前view的控制器--------------
@interface UIView (CurrentController)
-(UIViewController *)getCurrentViewController;
@end
#import "UIView+CurrentController.h"
@implementation UIView (CurrentController)
-(UIViewController *)getCurrentViewController{
UIResponder *next = [self nextResponder];
do {if ([next isKindOfClass:[UIViewController class]]) {
return (UIViewController *)next;
}
next = [next nextResponder];
} while (next !=nil);
returnnil;
}
@end
-----------------获取当前应用的tabbarController-----------------
在APPdelegate中获取tabbarcontroller;
LYMainTabBarController *mt=(LYMainTabBarController *)[UIApplication sharedApplication].delegate.window.rootViewController; NSLog(@"---在APP的类gate中获取tabbarController---%@",mt.viewControllers[2].tabBarItem.title);</span>
在控制器中获取tabbarController的viewcontroler,
[self.navigationController.tabBarController.viewControllers[2].tabBarItem setBadgeValue:@"1"];
-----------获取navigationController层级中的viewcongtroller---------------
http://blog.csdn.net/u011146511/article/details/78221865
方法一:
for (UIViewController *controllerin self.navigationController.viewControllers) {
if ([controllerisKindOfClass:[GetMoneyVCclass]]) {
GetMoneyVC *revise =(GetMoneyVC *)controller;
[self.navigationControllerpopToViewController:reviseanimated:YES];
}
}
方法二:
rootViewcontroller是数组中的第0个元素;下一级就是第一个元素,一次类推
UIViewController *viewCtl = self.navigationController.viewControllers[1];
[self.navigationController popToViewController:viewCtl animated:YES];