1

質問はこれに似ていますが、Xcode 5 が存在しないときに作成されました。そして、その質問はまだ答えられていません。ストーリーボードの削除方法についても同様の質問がありますが、タブ バー コントローラーではなく、ナビゲーション コントローラーに関するものです。

私の行動順序:

  1. タブ付きアプリケーションを作成する

  2. すべてのストーリーボード ファイルを削除します

  3. .plist からストーリーボードを削除する

  4. UITabBarController サブクラスを作成し、xib を編集します

  5. アプリのデリゲートを変更します。

- (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;
}

その結果、タブ バーの代わりに灰色の場所が表示された黒い画面が表示されます。

間違いはどこですか?

4

1 に答える 1

2

タブ バーが空であるため、黒い画面が表示されるため、TabController に ViewController を追加する必要があります。

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. Xcode プロジェクトにさらに 2 つの新しい ViewController を追加します (例: FirstViewController、SecondViewController)。
  2. この ViewControllers をタブ バー コントローラーに追加して、アプリ デリゲートを変更します。
于 2015-12-03T17:58:56.067 に答える