美文网首页
如何查看已有项目中界面对应的控制器

如何查看已有项目中界面对应的控制器

作者: HuangLinWang | 来源:发表于2016-12-13 17:27 被阅读0次

原文 http://www.jianshu.com/p/78efcc9575b7

利用Runtime实现给UIViewController添加一个分类,重写load方法,在load方法中让viewWillAppear:和已有方法(自己实现)例如:logViewWillAppear:进行交换.

+ (void) load {
        
        #ifdef DEBUG
        
        //原本的viewWillAppear方法
        Method viewWillAppear = class_getInstanceMethod(self, @selector(viewWillAppear:));
        
        //需要替换成 能够输出日志的viewWillAppear
        Method logViewWillAppear = class_getInstanceMethod(self, @selector(logViewWillAppear:));
        
        //两方法进行交换
        method_exchangeImplementations(viewWillAppear, logViewWillAppear);
        
        #endif
    }
- (void)logViewWillAppear:(BOOL)animated {
        
        NSString *className = NSStringFromClass([self class]);
        
        //在这里,你可以进行过滤操作,指定哪些viewController需要打印,哪些不需要打印
        if ([className hasPrefix:@"UI"] == NO) {
            NSLog(@"%@ will appear",className);
        }
        
        //下面方法的调用,其实是调用viewWillAppear
        [self logViewWillAppear:animated];
    }

相关文章

网友评论

      本文标题:如何查看已有项目中界面对应的控制器

      本文链接:https://www.haomeiwen.com/subject/sadbmttx.html