// 获取当前显示的 UIViewController
- (UIViewController )dc_findCurrentShowingViewController {
//获得当前活动窗口的根视图
UIViewController vc = [UIApplication sharedApplication].keyWindow.rootViewController;
UIViewController *currentShowingVC = [self findCurrentShowingViewControllerFrom:vc];
return currentShowingVC;
} -
(UIViewController )findCurrentShowingViewControllerFrom:(UIViewController )vc
{
// 递归方法 Recursive method
UIViewController currentShowingVC;
if ([vc presentedViewController]) {
// 当前视图是被presented出来的
UIViewController nextRootVC = [vc presentedViewController];
currentShowingVC = [self findCurrentShowingViewControllerFrom:nextRootVC];} else if ([vc isKindOfClass:[UITabBarController class]]) {
// 根视图为UITabBarController
UIViewController nextRootVC = [(UITabBarController )vc selectedViewController];
currentShowingVC = [self findCurrentShowingViewControllerFrom:nextRootVC];} else if ([vc isKindOfClass:[UINavigationController class]]){
// 根视图为UINavigationController
UIViewController nextRootVC = [(UINavigationController )vc visibleViewController];
currentShowingVC = [self findCurrentShowingViewControllerFrom:nextRootVC];} else {
// 根视图为非导航类
currentShowingVC = vc;
}return currentShowingVC;
}
iOS 插件 只能获取当前的控制器 能调用presentViewController 跳转下一个页面 怎样才能使用pushViewController跳转下一个页面呢?
1***@163.com (作者)
ViewController vc = [ViewController new];
这样写不行,请问要怎样写呢?大神
2023-06-25 18:25