通过POP切换到控制器,并刷新控制器数据的常规方法一般是通过通知,代理,但方法都过于繁琐,可以利用此方法简单的实现此功能。
因为POP回来的时候不会执行- (void)viewDidLoad,所以在这个方法中加一个标识,然后在-(void)viewWillAppear进行判断,如果没执行viewDidLoad,则说明是POP回来的,可以执行界面的刷新等方法,代码如下:
//先声明一个变量标志是不是POP回来的
@property (assign, nonatomic) bool isPop;
@end
@implementation ILSetting_General
//这个方法执行表明,是PUSH进来的,则将isPop设置为NO
- (void)viewDidLoad
{
[super viewDidLoad];
_isPop=NO;//将isPop设置为NO
NSLog(@"- (void)viewDidLoad");
}
//无论是PUSH,POP都会执行这个方法
-(void)viewWillAppear:(BOOL)animated{
NSLog(@"-(void)viewWillAppear:(BOOL)animated");
if (_isPop) {
[self reloadTableView];//执行POP的方法,比如你POP回来后需要刷新表格。
}else{
//执行PUSH进来时的方法。
}
_isPop=YES;//将标志设置为YES。
}
//刷新当前的cell数据
-(void)reloadTableView{
NSLog(@"-(void)reloadTableView");
}