UITabBarController не загружает "Больше" представлений в приложенииDidFinishLaunching - PullRequest
0 голосов
/ 10 сентября 2009

Я пытаюсь восстановить состояние моего приложения iPhone с несколькими вкладками. Есть более 5 вкладок, каждая со своим собственным контроллером навигации. На applicationDidFinishLaunching я определяю, какая была последняя вкладка, на которой был пользователь, и устанавливаю ее с

myTabController.selectedIndex = persistedTabIndex;

Затем я вызываю функцию на корневом контроллере представления этой вкладки, чтобы восстановить себя. Проблема в том, что если вкладка была перемещена на страницу «Дополнительно», представление не было загружено, и вызов исчезает в земле NIL. Есть ли способ заставить контроллер представления загрузить его представление?

Заранее большое спасибо за внимание и ответы.

Ответы [ 2 ]

1 голос
/ 10 сентября 2009

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

- (void)applicationDidFinishLaunching:(UIApplication *)application
{   
    // .. my app set up is here

    // Select the tab that was selected on last shutdown
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSInteger whichTab = [defaults integerForKey:kSelectedTabDefaultsKey];
    self.tabBarController.selectedIndex = whichTab;
}

- (void)applicationWillTerminate:(UIApplication *)application
{
    // Save the current tab so the user can start up again in the same place.
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSInteger whichTab = self.tabBarController.selectedIndex;
    [defaults setInteger:whichTab forKey:kSelectedTabDefaultsKey];
}

и определение в моем файле интерфейса:

#define kSelectedTabDefaultsKey @"SelectedTab"

Это работает, если пользователь не переставляет вкладки, в этом случае вам необходимо обновить массив вкладок (индекс изменится).

Вот оригинальная страница, где я нашел код:

http://iphonedevelopment.blogspot.com/2009/09/saving-tabs.html

Я использую этот код в интерфейсе с вкладками, который показывает вкладку «Еще ...». Когда я закрываю вкладку в разделе «Еще ...», интерфейс возвращается к этой вкладке при перезапуске приложения. Интерфейс не перезапускается в табличном представлении «Еще ...», но я не считаю это проблемой.

0 голосов
/ 10 сентября 2009

Странно; если контроллер навигации находится в массиве контроллера вкладок, он должен получать метод -loadView, вызываемый как обычно, когда он выбран, независимо от того, находится ли он в главном 4. Вы можете попробовать вручную вызвать [thePersistedController loadView] после его создания, но перед сообщением контроллер вкладки, чтобы выбрать его.

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