在做登陸界面時。啟動後進入掃碼登陸界面,在掃碼登陸界面點選調用
[self presentViewController:vc animated:YES completion:nil];
進入賬号登陸界面,然後登陸成功後調用
LJMainTabbarController * mainVc = [[LJMainTabbarController alloc] init];
[UIApplication sharedApplication].keyWindow.rootViewController = mainV
發現掃碼登陸界面和賬号登陸界面都不被銷毀,不調用dealloc方法
原因:在vc1 presentViewController:vc2 時,vc1 和vc2會互相持有,就是說vc1 和vc2 會互相引用,此時切換了rootViewController,但是vc1和vc2必然不會銷毀。
解決辦法 在[UIApplication sharedApplication].keyWindow.rootViewController = mainV 後面加上一句代碼
[self dismissViewControllerAnimated:NO completion:nil];
打破vc1 和vc2 的互相持有,系統就能正常的銷毀二者了。