Skip to content

Instantly share code, notes, and snippets.

@ananfang
Created February 2, 2012 05:28
Show Gist options
  • Save ananfang/1721691 to your computer and use it in GitHub Desktop.
Save ananfang/1721691 to your computer and use it in GitHub Desktop.
TopViewController category for UIViewController
//
// UIViewController+TopViewController.h
//
// Created by Fang Andy on 12/2/2.
// Copyright (c) 2012年 Openmouse Studio. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface UIViewController (TopViewController)
- (UIViewController *)topViewController;
- (UIViewController *)traverseTopViewController;
@end
//
// UIViewController+TopViewController.m
//
// Created by Fang Andy on 12/2/2.
// Copyright (c) 2012年 Openmouse Studio. All rights reserved.
//
#import "UIViewController+TopViewController.h"
@implementation UIViewController (TopViewController)
- (UIViewController *)topViewController
{
return [self traverseTopViewController];
}
- (UIViewController *)traverseTopViewController
{
if (self.presentedViewController) {
return [self.presentedViewController traverseTopViewController];
} else if (self.navigationController) {
return self.navigationController.visibleViewController;
} else if ([self isMemberOfClass:[UINavigationController class]]) {
return [(UINavigationController *)self visibleViewController];
} else {
return self;
}
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment