通用页面的跳转
#import <objc/runtime.h>
#import <objc/message.h>
#import "AppDelegate.h"
// 无需导入要跳转的VC对应的.h
// 可以在任位置跳转
/*!
* @author Macro QQ:778165728, 15-08-24
*
* @brief 跳转到指定页面
*
* @param vcNameStr 页面的VC对应的名称
*/
- (void)jumpToVC:(NSString *)vcNameStr {
NSString *class =[NSString stringWithFormat:@"%@", vcNameStr];
const char *className = [class cStringUsingEncoding:NSASCIIStringEncoding];
// 从一个字串返回一个类
Class newClass = objc_getClass(className);
if (!newClass)
{
// 创建一个类
Class superClass = [NSObject class];
newClass = objc_allocateClassPair(superClass, className, 0);
// 注册你创建的这个类
objc_registerClassPair(newClass);
}
// 创建对象
id instance = [[newClass alloc] init];
AppDelegate *appdelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
// 根视图是UINavigationController
UINavigationController *pushClassStance = (UINavigationController*)appdelegate.window.rootViewController;
// 根视图是UITabBarController
// UITabBarController *tabVC = (UITabBarController *)appdelegate.window.rootViewController;
// UINavigationController *pushClassStance = (UINavigationController *)tabVC.viewControllers[tabVC.selectedIndex];
// 跳转到对应的控制器
[pushClassStance pushViewController:instance animated:YES];
}