項(xiàng)目結(jié)構(gòu)分析
底部導(dǎo)航UITabBarController+導(dǎo)航欄UINavigationController結(jié)構(gòu)的iOS項(xiàng)目分析
1煮甥、退出登錄切換rootViewController時(shí)鬓照、必須要dismiss掉present出來的控制器、要不然控制器不會(huì)釋放秽之、造成內(nèi)存泄漏当娱,push出來的就不需要處理、切換就會(huì)釋放
UIWindow *keyWindow =?[UIApplication sharedApplication].keyWindow;
UIViewController *root = keyWindow.rootViewController;
if ([root presentedViewController]) {
????[rootdismissViewControllerAnimated:NO completion:nil];
}
keyWindow.rootViewController = LoginviewController
2考榨、需要切換底部導(dǎo)航的時(shí)候跨细、也必須要dismiss掉present出來的控制器、要不然頁面沒有反應(yīng)河质、不會(huì)切換
1扼鞋、重復(fù)第一步代碼
2、UITabBarController *rootVC = (UITabBarController *)[UIApplication sharedApplication].keyWindow.rootViewController;
? ? ? ? if(rootVC && [rootVC isKindOfClass:[UITabBarController class]]) {
? ? ? ? ? ? if(rootVC.viewControllers.count>1) {
? ? ? ? ? ? ? ? rootVC.selectedIndex=1;
? ? ? ? ? ? ? ? UINavigationController *navigationController = (UINavigationController *)rootVC.selectedViewController;
? ? ? ? ? ? ? ? if([navigationController isKindOfClass:[UINavigationController class]]) {
? ? ? ? ? ? ? ? ? ? // 先回到根? ? ? ? ? ? ? ? ? ??
????????????????????[navigationController popToRootViewControllerAnimated:NO];
????????????????????[navigationController pushViewController:MessageVC animated:YES];???????????????