解决方案
方案1
整个项目中建立一个基类的viewController,然后将项目中所有的viewController都继承于基类的viewController,然后重写基类中的viewWillAppear方法
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSString *className = NSStringFromClass([self class]);
NSLog(@"%@ will appear", className);
}
方案2
给UIViewContoller建立一个分类,在分类里进行方法的交换,既保留了原本的方法,又有打印信息
//
// UIViewController+Swizzling.m
// CollectionsOfExample
//
// Created by mac on 16/10/1.
// Copyright ? 2016年 chenfanfang. All rights reserved.
//
#import “UIViewController+Swizzling.h”
#import @implementation UIViewController (Swizzling)
-
(void)load {
//我们只有在开发的时候才需要查看哪个viewController将出现
//所以在release模式下就没必要进行方法的交换
#ifdef DEBUG//原本的viewWillAppear方法
Method viewWillAppear = class_getInstanceMethod(self, &