好方法之完全重新加载controller

有时候我们找重新加载controller的方法。可是找不到方法。事实上确实不存在。那最方便的方法是什么哪,就是一个通知全搞定


-(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];
    }

  1. 重写controller的init方法添加通知(接收发送通知的)
  2. [self.view removeAllSubviews];移除self.view 的所有子界面
  3. self.titleArr = nil; 移所有数据
  4. [self setUpType]; 执行viewdidiload中的所有方法。
UIView的类扩展

  • (void)removeAllSubviews {
    while (self.subviews.count) {
    UIView* child = self.subviews.lastObject;
    [child removeFromSuperview];
    }
    }

你可能感兴趣的:(好方法之完全重新加载controller)