iOS - 화면 맨 위에 있는 UIViewController 가져오기

2212 단어 iOS-Tips
현재 화면 맨 위에 표시된 UIViewController를 코드로 가져오는 장면이 종종 있습니다.어떻게 얻습니까?

rootViewController 가져오기


The root view controller provides the content view of the window. Assigning a view controller to this property (either programmatically or using Interface Builder) installs the view controller’s view as the content view of the window. If the window has an existing view hierarchy, the old views are removed before the new ones are installed.
rootViewController의 설정은 키윈도를 설정할 때 흔히 볼 수 있으며, 이 UIWindow의 맨 밑바닥을 나타내는 UIViewController입니다.
UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
UIViewController *rootViewController = keyWindow.rootViewController;

currentViewController 가져오기


일반적으로 현재 화면 맨 위에 있는 ViewController를 다음과 같이 가져올 수 있습니다.
- (UIViewController *)currentViewController {
    UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
    UIViewController *vc = keyWindow.rootViewController;
    while (vc.presentedViewController) {
        vc = vc.presentedViewController;

        if ([vc isKindOfClass:[UINavigationController class]]) {
            vc = [(UINavigationController *)vc visibleViewController];
        } else if ([vc isKindOfClass:[UITabBarController class]]) {
            vc = [(UITabBarController *)vc selectedViewController];
        }
    }
    return vc;
}

좋은 웹페이지 즐겨찾기