- (void)PushNextViewControllerWith:(NSString *)VCName
{
NSArray *array = [UIApplication sharedApplication].windows;
UIWindow *window = array[0];
// 取到tabbarcontroller
QMTabBar *tabBarController = (QMTabBar*)window.rootViewController;
// 取到navigationcontroller
QMNavigationBar * nav = (QMNavigationBar *)tabBarController.selectedViewController;
// 类名
NSString *class = VCName;
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];
[nav pushViewController:instance animated:YES];
}
QMTabBar 和 QMNavigationBar 为自定义UITabBarController 和UINavigationController
将类名传入可以即可,可用于推送跳转
网友评论