0

只是为了澄清事情,我不想使用UITabBarController. 我需要对UITabBar无法使用UITabBarController. (比如让它滚动等')

这就是我创建我的方式UITabBar

  1. 从 Interface Builder 中,我将 a 拖到UITabBarViewControllers 中。

  2. 连接代表和插座。

  3. 添加UITabbarItem了标签和 segue 标识符。

并使用了这段代码:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
   {
      if (item.tag==0) {
        [self performSegueWithIdentifier:@"Favorite" sender:nil];
      }
      else if (item.tag==1)
      {
         [self performSegueWithIdentifier:@"Item" sender:nil];
      }
   }

我的问题是,当我推一个新ViewControllerUITabBar消失。UITabBar我的问题是,保持on pushViewController和 other ViewControllers的正确方法是什么?

我已经尝试使用它将它传递给下一个视图控制器PrepareForSegue并且它可以工作,但是当我回到我以前的控制器时,我需要重置UITabBar框架等'。我想我可以将它作为一个全局对象保留在我的 Singleton 中,并继续将其添加到 newViewController中,但这听起来像是过度杀戮有没有更好的方法来做到这一点而不使用 a UITabBarController

4

1 回答 1

1

即使您不想使用标签栏控制器,您仍然应该遵循相同的设计模式。您的ScrollableTabBarController should be a container view controller, and when different tab items are selected, it should add the new item as a child view controller. 阅读视图控制器包含文档以获取更多详细信息。

目前听起来您正在将视图控制器推到容器顶部,这表明您的情节提要基于导航控制器。这是错误的做法。

我不确定在情节提要中执行自定义容器控制器有多简单(我会在代码中执行)。您可能必须手动进行连接,而不是通过 segues。

于 2013-06-14T06:42:48.773 回答