版本記錄
| 版本號 | 時間 |
|---|---|
| V1.0 | 2017.11.05 |
前言
在app中,很多時候都需要熟悉一些小技巧讓您事半功倍,提高工作效率,這些小技巧都很小很細(xì)。感興趣的可以看看我寫的其他小技巧。
1. 實用小技巧(一):UIScrollView中上下左右滾動方向的判斷
2. 實用小技巧(二):屏幕橫豎屏的判斷和相關(guān)邏輯
3.實用小技巧(三):點擊手勢屏蔽子視圖的響應(yīng)
4.實用小技巧(四):動態(tài)的增刪標(biāo)簽視圖
5.實用小技巧(五):通過相冊或者相機更改圖標(biāo)
6.實用小技巧(六):打印ios里所有字體
7. 實用小技巧(七):UITableViewCell自適應(yīng)行高的計算
8. 實用小技巧(八):數(shù)字余額顯示的分隔
9.實用小技巧(九):類頭條模糊背景的實現(xiàn)
10.實用小技巧(十):晃動手機換后臺服務(wù)器網(wǎng)絡(luò)
11.實用小技巧(十一):scrollView及其子類顯示的一些異常處理
12.實用小技巧(十二):頭像圖片縮放以及保存到相冊簡單功能的實現(xiàn)
13.實用小技巧(十三):一種類酷我音樂盒動畫實現(xiàn)
14.實用小技巧(十四):生成跳往applestore指定app的方法
15.實用小技巧(十五):左側(cè)向右滑動返回上一級控制器
16.實用小技巧(十六):獲取設(shè)備信息
17.實用小技巧(十七):清除緩存目錄
18.實用小技巧(十八):取出gif圖的每一幀
19.實用小技巧(十九):獲取相機和麥克風(fēng)權(quán)限
20.實用小技巧(二十):游客模式的實現(xiàn)
21.實用小技巧(二十一):版本檢測的實現(xiàn)
22.實用小技巧(二十二):鍵盤遮擋問題
23. 實用小技巧(二十三):獲取閃光燈的控制
24. 實用小技巧(二十四):APP頁面開啟跳轉(zhuǎn)邏輯處理
25. 實用小技巧(二十五)—— 關(guān)于UILabel控件寬高的計算
26. 實用小技巧(二十六)—— APP中各種權(quán)限監(jiān)測和申請工具封裝
跳轉(zhuǎn)邏輯的封裝
下面我們看一下我做的跳轉(zhuǎn)邏輯封裝的文件代碼組織結(jié)構(gòu)。

下面看一下初步封裝的代碼。
1. JJJumpManager.h
#import <UIKit/UIKit.h>
/**
跳轉(zhuǎn)工具
*/
@interface JJJumpManager : NSObject
+ (void)handURL:(NSString *)url param:(NSDictionary *)dict;
@end
2. JJJumpManager.m
#import "JJJumpManager.h"
#import "JJPersonSettingVC.h"
#import "JJVideoVC.h"
#import "JJLiveVC.h"
@implementation JJJumpManager
#pragma mark - Class Public Function
//分類
+ (void)handURL:(NSString *)url param:(NSDictionary *)dict
{
if (!url) {
return;
}
UIViewController *vc = [UIApplication sharedApplication].keyWindow.rootViewController;
//h5頁面跳轉(zhuǎn)
if ([url hasPrefix:@"http"] || [url hasPrefix:@"https"]) {
//h5頁面跳轉(zhuǎn)
}
/**
APP內(nèi)部跳轉(zhuǎn)
*/
//個人中心
if ([url hasPrefix:@"yaya.personalSetting"]) {
JJPersonSettingVC *setVC = [[JJPersonSettingVC alloc] init];
//這里可以進行統(tǒng)一的打點設(shè)置,通過設(shè)置From字段和屬性,確定要跳轉(zhuǎn)的頁面,下面同樣處理
[self pushMyVc:setVC currentVc:vc];
}
//短視頻
if ([url hasPrefix:@"yaya.shortvideo"]) {
JJVideoVC *videoVC = [[JJVideoVC alloc] init];
//這里可以進行統(tǒng)一的打點設(shè)置,通過設(shè)置From字段和屬性,確定要跳轉(zhuǎn)的頁面,下面同樣處理
[self pushMyVc:videoVC currentVc:vc];
}
//直播
if ([url hasPrefix:@"yaya.live"]) {
JJLiveVC *liveVC = [[JJLiveVC alloc] init];
//這里可以進行統(tǒng)一的打點設(shè)置,通過設(shè)置From字段和屬性,確定要跳轉(zhuǎn)的頁面,下面同樣處理
[self pushMyVc:liveVC currentVc:vc];
}
//下面的邏輯類似,這里就省略了
}
#pragma mark - Class Private Function
//跳轉(zhuǎn)
+ (void)pushMyVc:(UIViewController *)mVc currentVc:(UIViewController *)currentVc
{
if([currentVc isKindOfClass:[UITabBarController class]]){
UITabBarController *mRootVc = (UITabBarController *)currentVc;
[mRootVc.selectedViewController pushViewController:mVc animated:YES];
return;
}
if ([currentVc isKindOfClass:[UINavigationController class]]) {
UINavigationController *nv = (UINavigationController *)currentVc;
[nv pushViewController:mVc animated:YES];
}
else{
[currentVc.navigationController pushViewController:mVc animated:YES];
}
}
@end
跳轉(zhuǎn)工具的使用
下面我們就看一下跳轉(zhuǎn)工具的使用情況,還是先看代碼。
1. ViewController.m
#import "ViewController.h"
#import "JJJumpManager.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor redColor];
NSDictionary *dict = @{@"from": @"tabBar"};
NSString *url = @"yaya.live";
[JJJumpManager handURL:url param:dict];
}
@end
2. JJLiveVC.m
#import "JJLiveVC.h"
@interface JJLiveVC ()
@end
@implementation JJLiveVC
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor redColor];
}
@end
這里from字段用于打點,根據(jù)其他需求可以增加或者減少字典中的鍵值對。下面看一下測試結(jié)果。

可見,實現(xiàn)了正常跳轉(zhuǎn)。詳細(xì)的可以看刀客傳奇 - Github
后記
未完,待續(xù)~~~
