Xcode 5.没有故事板的选项卡式应用程序?

时间:2014-04-27 09:12:48

标签: storyboard uitabbarcontroller xcode5 xib tabbed

问题类似于this one,但它是在Xcode 5不存在时创建的。而这个问题仍未得到解答。关于如何删除故事板也有类似的问题,但它们是关于导航控制器,而不是标签栏控制器。

我的行动命令:

  1. 创建标签式应用

  2. 删除所有故事板文件

  3. 从.plist

  4. 删除故事板
  5. 创建UITabBarController子类并编辑xib

  6. 更改应用代理:

  7. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        // Override point for customization after application launch.
        self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
        BKTabController *navVC = [[BKTabController alloc] initWithNibName:@"BKTabController" bundle:nil];
        self.window.rootViewController = navVC;
        [self.window makeKeyAndVisible];
    
        return YES;
    }
    

    结果是黑屏,灰色而不是标签栏。

    错误在哪里?

1 个答案:

答案 0 :(得分:2)

您看到黑屏,因为您的标签栏为空,因此您必须将ViewController添加到TabController。

像这样修改AppDelegate:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    BKTabController *navVC = [[BKTabController alloc] initWithNibName:@"BKTabController" bundle:nil];
    self.window.rootViewController = navVC;

    FirstViewController* firstView = [[FirstViewController alloc]initWithNibName:nil bundle:nil];
    firstView.title = @"FIRST"; //THIS WILL BE THE TITLE OF YOUR FIRST TAB

    SecondViewController* secondView = [[SecondViewController alloc]initWithNibName:nil bundle:nil];
    secondView.title = @"SECOND";//THIS WILL BE THE TITLE OF YOUR SECOND TAB

    //ADD VIEW CONTROLLER TO YOUR TAB CONTROLLER
    self.tabBarController.viewControllers = @[firstView,secondView];

    [self.window makeKeyAndVisible];
    return YES;
}

要点:

  1. 向您添加两个以上的新ViewControllers Xcode项目(例如 FirstViewController,SecondViewController)。
  2. 通过将此ViewControllers添加到Tab栏控制器来修改您的app delegate。