獲取當前頁面所在的controller

這是從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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章