Как помнить в последний раз выбранную вкладку в UITabBarController?

На дальнейшем размышлении некоторые шаблоны, такие как Borg, могут быть более характерны для Python (хотя подобные вещи могут быть сказаны о других шаблонах и языках).

шаблон итератора также используется в Python, хотя в немного отличающейся форме.

Duncan Booth записал статья о шаблонах в python.

11
задан quantum 26 October 2009 в 05:32
поделиться

2 ответа

В делегате UITabBar перезапишите

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item

и сохраните элемент . index в 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;
} 
8
ответ дан 3 December 2019 в 05:58
поделиться

Сохранять выбранный индекс вкладки в предпочтениях NSUserDefaults каждый раз, когда пользователь выбирает новую вкладку. Затем, когда приложение запустится, загрузите это значение в настройках и вручную выберите эту вкладку.

0
ответ дан 3 December 2019 в 05:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: