杨锴
2025-04-16 09a372bc45fde16fd42257ab6f78b8deeecf720b
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
//
//  UIViewController+VTMagic.m
//  VTMagic
//
//  Created by tianzhuo on 15/7/9.
//  Copyright (c) 2015年 tianzhuo. All rights reserved.
//
 
#import "UIViewController+VTMagic.h"
#import <objc/runtime.h>
#import "VTMagicView.h"
 
static const void *kVTReuseIdentifier = &kVTReuseIdentifier;
 
@implementation UIViewController (VTMagic)
 
#pragma mark - accessor methods
- (void)setReuseIdentifier:(NSString *)reuseIdentifier {
    objc_setAssociatedObject(self, kVTReuseIdentifier, reuseIdentifier, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
 
- (NSString *)reuseIdentifier {
    return objc_getAssociatedObject(self, kVTReuseIdentifier);
}
 
- (UIViewController<VTMagicProtocol> *)magicController {
    UIViewController *viewController = self.parentViewController;
    while (viewController) {
        if ([viewController conformsToProtocol:@protocol(VTMagicProtocol)]) break;
        viewController = viewController.parentViewController;
    }
    return (UIViewController<VTMagicProtocol> *)viewController;
}
 
- (NSInteger)vtm_pageIndex {
    return [self.magicController.magicView pageIndexForViewController:self];
}
 
@end