В делегате UITabBar перезаписать
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
и сохраните индекс item в NSUserDefaults. В следующий раз, когда ваше приложение запустится, прочитайте его оттуда и верните в исходное состояние. Как то так:
- во-первых, вы бы задали делегата для вашего UITabBar, например:
tabBarController.delegate = anObject;
-in anObject , перезаписать didSelectItem :
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
[def setInteger: [NSNumber numberWithInt: tabBarController.selectedIndex]
forKey:@"activeTab"];
[def synchronize];
}
Обратите внимание, что вы сохраняете NSNumber, поскольку значения int не могут быть сериализованы напрямую.
Когда вы снова запустите приложение, оно прочитает и установит значение selectedIndex из значений по умолчанию:
- (void)applicationDidFinishLaunchingUIApplication *)application {
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
int activeTab = [(NSNumber*)[def objectForKey:@"activeTab"] intValue];
tabBarController.selectedIndex = activeTab;
}