有时候我们找重新加载controller的方法。可是找不到方法。事实上确实不存在。那最方便的方法是什么哪,就是一个通知全搞定
<pre>
-(instancetype)init{
self = [super init];
//重新加载界面
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadController) name:@"ViewControllerShouldReloadNotification" object:nil];
return self;
}
-(void)reloadController{
[self.view removeAllSubviews];
self.titleArr = nil;
[self setUpType];
}
-
(void)viewDidLoad {
[super viewDidLoad];
[self setUpType];self.view.backgroundColor=[UIColor whiteColor];
}
</pre>
- 重写controller的init方法添加通知(接收发送通知的)
- [self.view removeAllSubviews];移除self.view 的所有子界面
- self.titleArr = nil; 移所有数据
- [self setUpType]; 执行viewdidiload中的所有方法。
UIView的类扩展
<pre>
- (void)removeAllSubviews {
while (self.subviews.count) {
UIView* child = self.subviews.lastObject;
[child removeFromSuperview];
}
}
</pre>