Singleton用于跨选项卡保留UI状态

时间:2011-08-04 15:46:09

标签: iphone objective-c ios singleton uitabbar

我的应用使用标签栏显示5个差异视图。这些视图中的每一个都在顶部有一个窄条,显示了一个Twitter提要..推特提要应该保持所有标签的外观。

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

我无法弄清楚这里代码的最佳模式。我应该在Singleton中保留Twitter提要详细信息(包括用户界面?)并使用viewDidAppear将其粘贴到视图中吗?或者有更好的方法来实现这个吗?

2 个答案:

答案 0 :(得分:1)

您自己使用的是UITabBarController还是UITabBar?如果它本身就是UITabBar,您可以简单地将推杆放在顶部,不要将其与主内容视图交换。

如果你正在使用标签栏控制器,这可能有效:将你的app delegate(或其他一些单例)设置为委托,并执行:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    // Have an ivar called twitterBar.
    [viewController.view addSubview:twitterBar];
}

答案 1 :(得分:1)

我假设您当前的视图控制器树如下所示:

UITabBarController
    ViewOneController
    ViewTwoController
    etc.

你可以更深入地嵌套这个:

UINavigationController
    UITabBarController
        ViewOneController
        ViewTwoController
        etc.

然后将屏幕顶部的显示放入根UIViewController的导航栏。或者完全为你自己的子类更改它。