根据类名跳转页面-iOS

- (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

将类名传入可以即可,可用于推送跳转

你可能感兴趣的:(根据类名跳转页面-iOS)