Синглтон для сохранения состояния интерфейса на вкладках - PullRequest
1 голос
/ 04 августа 2011

Мое приложение использует панель вкладок для отображения 5 различных представлений.Каждое из этих представлений имеет узкую полосу в верхней части, которая отображает канал Twitter. Канал Twitter должен сохранять свой внешний вид на всех вкладках.

-----------------------------------------
| twitter feed scrolling to the left    | < this block stays here, text scrolls
-----------------------------------------
|                                       |
|                                       |
|                                       |
|           main bit of the view        |
|          changes according to tab     |
|                                       |
|                                       |
|                                       |
-----------------------------------------
|       |       |       |       |       |
|       |       |       |       |       | < tab bar
|       |       |       |       |       |
-----------------------------------------

Я не могу понять, какой шаблон лучшездесь для кода.Должен ли я сохранить данные фида Twitter (включая пользовательский интерфейс?) В Singleton и отобразить их с помощью viewDidAppear?Или есть лучший способ реализовать это?

Ответы [ 2 ]

1 голос
/ 04 августа 2011

Полагаю, ваше текущее дерево контроллера вида выглядит так:

UITabBarController
    ViewOneController
    ViewTwoController
    etc.

Вы можете вложить это глубже:

UINavigationController
    UITabBarController
        ViewOneController
        ViewTwoController
        etc.

Затем поместите дисплей в верхней части экрана в корневую панель навигации UIViewController. Или полностью измените его для своего собственного подкласса.

1 голос
/ 04 августа 2011

Вы используете UITabBarController или UITabBar самостоятельно?Если это само по себе UITabBar, вы можете просто поставить панель Twitter вверху и не менять ее на основной контент.

Если вы используете контроллер панели вкладок, это можетработа: установите делегата вашего приложения (или другого синглтона) в качестве делегата и выполните:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    // Have an ivar called twitterBar.
    [viewController.view addSubview:twitterBar];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...