ios 極光推送獲取當前控制器進行介面跳轉
#pragma mark - 通過推送返回的資料決定跳轉到那個頁面
- (void)JPushjudgeToWhichVC{
if ([self.type isEqualToString:@"1"]) {
//外鏈和APP內活動頁
KindDetailViewController * KindVC = [[KindDetailViewController alloc] init];
KindVC.url = self.redirect;
[[self getCurrentVC] presentViewController:KindVC animated:YES completion:nil];
}
}
#pragma mark - 獲取當前的顯示的控制器
- (UIViewController *)getCurrentVC{
UIViewController *currVC = nil;
UIViewController *rootvc = self.window.rootViewController;
do {
if ([Rootvc isKindOfClass:[UINavigationController class]]) {//控制器為UINavigationController
UINavigationController *nav = (UINavigationController *)rootvc;
UIViewController *vc = [nav.viewControllers lastObject];
currVC = vc;
rootvc = vc.presentedViewController;
}else if ([Rootvc isKindOfClass:[UITabBarController class]]){//控制器為UITabBarController
UITabBarController *tabVC = (UITabBarController *)rootvc;
currVC = tabVC ;
rootvc = [tabVC.viewControllers objectAtIndex:tabVC.selectedIndex];
continue;
}else {//控制器為UIViewController
UIViewController *VC = (UIViewController *)rootvc;
currVC = VC;
Rootvc = VC.presentedViewController;
}
} while (Rootvc != nil);
return currVC;
}
參考資料http://www.jianshu.com/p/a277790c9dc4 在其原有基礎上多新增了一個當前控制是UIViewController 的判斷和處理
相關文章
- iOS獲取當前控制器的正確方式iOS
- iOS —— 極光推送和極光IMiOS
- React Native 跳轉到 APP 推送頁面並獲取推送狀態React NativeAPP
- iOS 點選推送訊息跳轉指定介面 —總結篇iOS
- Java如何獲取當前執行緒Java執行緒
- Flutter中如何進行介面跳轉Flutter
- 極光筆記丨iOS 15推送新特性筆記iOS
- JavaScript 獲取當前月份JavaScript
- 獲取當前時間
- php 獲取當前域名和當前協議PHP協議
- 極光推送申請iOS推送證書p12及配置流程iOS
- 極光推送申請iOS推送證書p12及配置教程iOS
- 獲取當前修改的行記錄資料
- 獲取當前頁面的topViewControllerViewController
- Java獲取當前星期幾Java
- mybatis獲取當前時間MyBatis
- Python如何獲取當前執行檔案路徑?Python
- python 如何獲取當前時間Python
- Flutter 小知識,Key的使用(獲取當前點選Widget位置/獲取當前Widget大小)Flutter
- Java:如何輕鬆獲取當前執行的方法名Java
- 簡單實現Laravel獲取當前執行的SQLLaravelSQL
- TP6 多應用模式下獲取不到當前控制器和方法名模式
- 獲取當前Tomcat例項的埠Tomcat
- Linux C獲取當前工作目錄Linux
- 微信小程式獲取當前位置微信小程式
- 獲取當前時間往前的日期
- Spark獲取當前分割槽的partitionIdSpark
- Flutter獲取當前網路型別Flutter型別
- Flutter應用整合極光推送Flutter
- 在 Laravel 中使用 極光推送Laravel
- 極光推送demo在android studio中無法執行Android
- Laravel 極光推送驅動,使用極光不再那麼麻煩!Laravel
- 極光筆記|極光推送在APICloud平臺的使用教程筆記APICloud
- 如何用js獲取當前時間和ip地址以及當前城市JS
- APP訊息推送 極光推送 示例程式碼APP
- react獲取當前頁面的url引數React
- 用js獲取當前月份的天數JS
- js獲取當前的具體時間JS
- C# 獲取當前伺服器域名C#伺服器