- (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)
{
// 創(chuàng)建一個類
Class superClass = [NSObject class];
newClass = objc_allocateClassPair(superClass, className, 0);
// 注冊你創(chuàng)建的這個類
objc_registerClassPair(newClass);
}
// 創(chuàng)建對象
id instance = [[newClass alloc] init];
[nav pushViewController:instance animated:YES];
}
QMTabBar 和 QMNavigationBar 為自定義UITabBarController 和UINavigationController
將類名傳入可以即可,可用于推送跳轉(zhuǎn)