国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

獲取窗口當(dāng)前顯示的控制器

2019-11-14 18:45:54
字體:
供稿:網(wǎng)友

解決類似網(wǎng)易新聞客戶端收到新聞推送后,彈出一個UIAlert,然后跳轉(zhuǎn)到新聞詳情頁面這種需求

1.提供一個UIView的分類方法,這個方法通過響應(yīng)者鏈條獲取view所在的控制器

- (UIViewController *)parentController{    UIResponder *responder = [self nextResponder];    while (responder) {        if ([responder isKindOfClass:[UIViewController class]]) {            return (UIViewController *)responder;        }        responder = [responder nextResponder];    }    return nil;}

2.通過控制器的布局視圖可以獲取到控制器實例對象

   modal的展現(xiàn)方式需要取到控制器的根視圖

+ (UIViewController *)currentViewController{    UIWindow *keyWindow = [UIapplication sharedApplication].keyWindow;    // modal展現(xiàn)方式的底層視圖不同    // 取到第一層時,取到的是UITransitionView,通過這個view拿不到控制器    UIView *firstView = [keyWindow.subviews firstObject];    UIView *secondView = [firstView.subviews firstObject];    UIViewController *vc = secondView.parentController;    if ([vc isKindOfClass:[UITabBarController class]]) {        UITabBarController *tab = (UITabBarController *)vc;        if ([tab.selectedViewController isKindOfClass:[UINavigationController class]]) {            UINavigationController *nav = (UINavigationController *)tab.selectedViewController;            return [nav.viewControllers lastObject];        } else {            return tab.selectedViewController;        }    } else if ([vc isKindOfClass:[UINavigationController class]]) {        UINavigationController *nav = (UINavigationController *)vc;        return [nav.viewControllers lastObject];    } else {        return vc;    }    return nil;}

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 溧水县| 双流县| 沂水县| 鸡泽县| 镶黄旗| 南溪县| 大连市| 株洲市| 庆元县| 禄丰县| 墨玉县| 英吉沙县| 兴城市| 雷州市| 荣昌县| 威远县| 怀集县| 荥阳市| 平湖市| 收藏| 江达县| 祁阳县| 永新县| 永年县| 资源县| 滦南县| 乌兰浩特市| 嘉禾县| 武清区| 海丰县| 白朗县| 台南市| 镇平县| 江北区| 陇西县| 两当县| 云梦县| 石楼县| 眉山市| 江华| 大埔县|