Мы нашли выход. Теперь мы делаем, когда пользователь снова входит в систему, мы выпускаем контроллеры представления, воссоздаем их и устанавливаем обратно на панель uitabbar.
NSMutableArray * arrControllers = [[AppDelegate.tabBarController.viewControllers] mutablecopy];
[arrControllers removeAtIndex: 3];
[arrControllers removeAtIndex: 2];
---- Создание новых контроллеров
UIViewController viewController2 = [[UIViewController alloc] initWithNibName: @ "viewController2" bundle: nil] autorelease];
UIViewController viewController3 = [[UIViewController alloc] initWithNibName: @ "viewController3" bundle: nil] autorelease];
- Создать контроллер Nav
UINavigationController navViewController2 = [[[UINavigationController alloc] initWithRootViewController: viewController2] autorelease];
UINavigationController navViewController3 = [[[UINavigationController alloc] initWithRootViewController: viewController3] autorelease];
[arrControllers addObject: navViewController2];
[arrControllers addObject: navViewController3];
[AppDelegate.tabViewController setViewControllers: arrControllers];
После этого изменения он работает нормально.
Единственная проблема, с которой мы столкнулись, была, если мы выпустим все объекты из массива, мы получим мусор. Это потому, что когда вы выпускаете allObjects, первый контроллер, который является RootViewController, освобождается?
Спасибо