Как сохранить текущий элемент панели вкладок при выходе из программы и перезагрузить этот элемент при перезапуске? - PullRequest
3 голосов
/ 28 марта 2009

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

Я предполагаю, что использую следующий метод в моем делегате приложения, чтобы сохранить текущую вкладку

- (void)applicationWillTerminate:(UIApplication *)application

но как мне получить доступ к текущей вкладке - и как лучше всего ее перезагрузить?

Ответы [ 3 ]

5 голосов
/ 28 марта 2009

В applicationWillTerminate сохраните selectedIndex контроллера вкладок по умолчанию.

  [[NSUserDefaults standardUserDefaults] setInteger:[tabBarController selectedIndex] forKey:@"tabBarIndex"];

Затем при запуске прочитайте индекс из NSDefaults и затем установите вкладку.

    setIndex = [[NSUserDefaults standardUserDefaults] objectForKey:@"tabBarIndex"];
    [[NSUserDefaults standardUserDefaults] synchronize];

setIndex является NSUInteger. Затем установите TabBarController в вашем viewDidLoad следующим образом:

[tabBarController selectedIndex:setIndex];

Это из памяти, так что вам нужно попробовать, но это общий подход.

Приветствия, Иордания

0 голосов
/ 23 июня 2010

Ответ Джордана работал для меня, за исключением того, что selectedIndex - это свойство, а не метод; так:

tabBarController.selectedIndex = setIndex;
0 голосов
/ 28 марта 2009

UITabBarController имеет свойство, которое даст вам индекс текущего выбранного контроллера представления; если вы сохраните это в NSUserDefaults по завершении и восстановите его при повторном запуске приложения, это восстановит выбор пользователя.

Я намеренно здесь неясен, потому что все детали UITabBarController и NSUserDefaults находятся в документации, и вам нужно научиться читать это, прежде чем обращаться за помощью к другим. Все остальное, что вам нужно, должно быть в вашем браузере документации Xcode или, если вы не установили документацию, на http://developer.apple.com.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...