【问题标题】:Converting a simple app to have a tab bar将简单的应用程序转换为具有标签栏
【发布时间】:2012-05-28 12:15:32
【问题描述】:

我有一个与SO question 类似的问题,但略有不同(或者我的技能不允许我自信地遵循指示)。我有一个现有的游戏应用程序,它有一个视图控制器和一个笔尖,并且工作正常。我想将其转换为具有标签栏控制器。我希望原始的、现有的视图控制器位于第一个选项卡上,我为第二个选项卡编写了一个新的视图控制器和一个新的 nib,它们将专用于游戏设置。在这个阶段,应用程序在项目中使用新的 nib 和视图控制器构建并运行良好(但没有进一步的编辑——没有尝试添加标签栏控制器等)。修改后的应用应该只有两个视图,每个视图都可以从两个选项卡之一访问。

抱歉,bkgnd 太长了。我正在关注上述问题的公认答案。我已经完成或可以完成的前 4 个步骤。第五步是Delete the old version of your Main View Controller from the NIB file and also remove the IBOutlet property from the Application Delegate。我认为我的应用程序中没有这样的IBOutlet(这与 OP 的应用程序不同)。我应该删除此列表中显示的对象视图控制器吗?还是我在这里走错了路?

其他信息

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    // Set up view controller & load a clean view

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    self.viewController = [[P3ViewController alloc] initWithNibName:@"P3ViewController" bundle:nil];
    self.window.rootViewController = self.viewController;

    NSLog(@"P3ViewController now active");

    [self.window makeKeyAndVisible];

    return YES;
}

【问题讨论】:

  • 您当前的视图控制器和 nib 是如何加载的?你能展示你的applicationDidFinishLaunchingWithOptions: 方法吗?
  • @Rog 我编辑了问题以提供方法。谢谢。

标签: ios interface-builder uitabbarcontroller


【解决方案1】:

这应该让你朝着正确的方向前进......

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    UITabBarController *tbc = [[UITabBarController alloc] init];
    YourNewViewController *ynvc = [[YourNewViewController alloc] initWithNibName:@"YourNewViewController" bundle:nil];
    YourCurrentViewController *ycvc = [[YourCurrentViewController alloc] initWithNibName:@"YourCurrentViewController" bundle:nil];
    [tbc setViewControllers:[NSArray arrayWithObjects:ynvc, ycvc, nil]];
    self.window.rootViewController = tbc;
    [self.window makeKeyAndVisible];
    return YES;
}

【讨论】:

  • 好的,谢谢,太好了,我明白这一点,并已对名称进行了适当的修改。我必须做一些其他的改变。非常感谢任何指导。
  • 您还想知道什么?这基本上将创建一个标签栏控制器,并为其分配 2 个视图控制器,然后使其成为应用程序窗口的根视图控制器。
  • 好吧,回到我关注的原始答案,我想知道是否需要删除视图控制器并重新连接笔尖?
  • 您不需要对现有笔尖进行任何更改(除了调整视图大小),因此它们可以适应可用空间,因为您在底部有一个标签栏。
  • 没错!我很高兴我问了,因为我所遵循的答案显然对 OP 的应用程序来说太具体了。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
  • 2011-08-17
  • 1970-01-01
  • 1970-01-01
  • 2011-08-25
  • 2011-10-03
  • 1970-01-01
相关资源
最近更新 更多