這是從IQKeyBoardManager裏面看到的兩個函數,覺得臥槽。太有用啦。跟大家分享一下:
//獲取最上層的控制器:window最上層的控制器:包含UINavigationController
- (UIViewController*)topMostController
{
UIViewController *topController = [self rootViewController];
// Getting topMost ViewController
while ([topController presentedViewController]) topController = [topController presentedViewController];
// Returning topMost ViewController
return topController;
}
//當最上層的控制器是UINavigationController時。你需要通過該方法來獲取UINavigationController的子控制器棧的最上層的UIViewController
- (UIViewController*)currentViewController;
{
UIViewController *currentViewController = [self topMostController];
while ([currentViewController isKindOfClass:[UINavigationController class]] && [(UINavigationController*)currentViewController topViewController])
currentViewController = [(UINavigationController*)currentViewController topViewController];
return currentViewController;
}