BBAContaninerTransitionEventManager.h
1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//
// BBAContaninerTransitionEventManager.h
// BBAUIKit
//
// Created by liuchengqing on 2018/9/25.
// Copyright © 2018 Baidu. All rights reserved.
//
#import <UIKit/UIKit.h>
// 容器转场事件派发, 由于事件频繁统一派发(代替Notification), 便于后续监控与拓展
// 不使用后需及时remove, 避免循环引用
/*
1.BBATabController 切换tab
2.BBANavigationController push/pop
3.UIViewController present/dismiss
*/
typedef NS_ENUM(NSUInteger, BBATransitionType) {
BBATransitionTypeNone,
BBATransitionTypePushOrPop, //暂时无法区分
BBATransitionTypePresentMode,
BBATransitionTypeDismissMode,
BBATransitionTypeSelectTab,
};
@protocol BBATransitionEventProtocol <NSObject>
- (void)containerWillShowViewController:(UIViewController *)vc baseViewController:(UIViewController *)baseVC transitionType:(BBATransitionType)type;
- (void)containerDidShowViewController:(UIViewController *)vc baseViewController:(UIViewController *)baseVC transitionType:(BBATransitionType)type;
@end
// 分发手百框架容器转场事件 tab & nav
@interface BBAContaninerTransitionEventManager : NSObject
@property (nonatomic, assign) BBATransitionType transitionType;
@property (nonatomic, weak) UIViewController *baseViewController;
+ (instancetype)shareInstance;
- (void)addEventRegister:(id<BBATransitionEventProtocol>)eventRegitster;
- (void)removeEventRegister:(id<BBATransitionEventProtocol>)eventRegitster;
- (void)actionWillShowViewController:(UIViewController *)vc;
- (void)actionDidShowViewController:(UIViewController *)vc;
- (void)setDelayTransitionDispatcher:(BOOL)needDelay;
@end