问题描述
我的app的登录页面是模态出来一个VC app退出登录后重新登录重新新切换window.rootViewController
但是发现tab的第一个子VC中的viewWillAppear方法走了俩遍
我自己也找到了原因了
第一遍走是因为我调用dismissViewController
第二遍走势因为我调用了appDelegate.window.rootViewController = tabVC;
但是不知道应该如何解决这个问题 希望大神指导一二
相关代码
[self dismissViewControllerAnimated:YES completion:^{
AppDelegate appDelegate = (AppDelegate )[[UIApplication sharedApplication] delegate];
appDelegate.window.rootViewController = tabVC;
}];
根据内容,我猜测你在弹出 loginVC 时,没有销毁 tabVC,并且,在登录成功重新展示时,又创建了一个新的。
第一遍:
点击退出登录,直接在 tabVC present loginVC,此时 dismiss loginVC,会触发 tabVC 的 viewWillAppear。
第二遍:
tabVC 应该是新创建的,此时设置 rootViewController,会触发新的 tabVC 的 viewWillAppear,由于是一个 vc,导致你认为走了两遍。