ios - 在AppDelegate怎么获取到当前的controller?
怪我咯
怪我咯 2017-04-17 17:17:22
[iOS讨论组]

在接受到remote notification后,我想跳转到D controller。 但是D controller的目录结构很深, A->B->C->D 一层层push过去的, 我这时候该怎么跳呢? 是不是 应该直接从Apush到D? 回退的时候 D 回退到A

还是应该获取到当前controller 然后push到D controller呢?(在AppDelegate怎么获取到当前的controller)
ps navigation 有一个visibleViewController 方法,可以获取到当前的controller,这种思路对不?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
PHPz

如果是在UINavigationController得子层级,直接UINavigationController push D controller是最好的实现,以用户的角度并不想A,B,C,D一层一层的push下去,然后再D,C,B,A一层一层的返回。

这种push操作并不需要获取当前的viewController.如果想获取UINavigationController子层级的当前显示的viewController ,可以通过UINavitionController的topViewController获取

伊谢尔伦

如果是用UINavigationController来组织页面结构的话可以使用:

((UINavigationController*)appDelegate.window.rootViewController).visibleViewController;

如果是用UITabBarController来组织页面结构的话:

((UITabBarController*)appDelegate.window.rootViewController).selectedViewController;
高洛峰
-(UIViewController *)currentViewController
{
    
    UIViewController * currVC = nil;
    UIViewController * Rootvc = self.window.rootViewController ;
    do {
        if ([Rootvc isKindOfClass:[UINavigationController class]]) {
            UINavigationController * nav = (UINavigationController *)Rootvc;
            UIViewController * v = [nav.viewControllers lastObject];
            currVC = v;
            Rootvc = v.presentedViewController;
            continue;
        }else if([Rootvc isKindOfClass:[UITabBarController class]]){
            UITabBarController * tabVC = (UITabBarController *)Rootvc;
            currVC = tabVC;
            Rootvc = [tabVC.viewControllers objectAtIndex:tabVC.selectedIndex];
            continue;
        }else if ([Rootvc isKindOfClass:[XXXCustom class]]){
            XXXCustom * tabVC = (XXXCustom *)Rootvc;
            currVC = tabVC;
            Rootvc = tabVC.selectedViewController;
            continue;
        } 
    } while (Rootvc!=nil);
    

    return currVC;
}```
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号