0

ビューがxibsとして実装されている古いプロジェクトがあります。ビューはタブバー付きのコントローラーです。

ここで、新しい UITabBarItem を追加したいと考えていますが、この新しい項目は xib ベースではなく、Storyboard ベースにしたいと考えています。つまり、このタブバー アイテムのコンテンツだけにストーリーボードを使用し、アプリの残りの部分はそのままにしておきたいということです。

私は次のことをしました:

  • 新しいストーリーボードを作成しました
  • ストーリーボードのラッパーとなる新しいViewControllerを作成しました
  • 次に、タブのIBの基礎となるVCを新しいVCに変更しました

しかし、私は今どのように進むべきですか?これを試して、InitialViewController をタブの ViewCONtroller にしました。

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self)
{
    UIStoryboard *financeStoryboard = [UIStoryboard storyboardWithName:@"WS_Finanzierung_Storyboard_iPhone" bundle:nil];
    UIViewController * initialViewController = [financeStoryboard instantiateInitialViewController];

    [self presentViewController:initialViewController animated:YES completion:nil];
}
return self;
}

しかし、それは機能しません (まだクラッシュします..)。

Q:とにかくそれは正しい方法ですか?これを行うベストプラクティスはありますか?

前もって感謝します

4

1 に答える 1

3

これを試してみてください..

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    UIViewController *viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
    UIViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
    UIViewController *viewController3 = [[StoryViewController alloc] init];
    UIStoryboard *tableViewStoryboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
    viewController3 = [tableViewStoryboard instantiateViewControllerWithIdentifier:@"newTab"];
    self.tabBarController = [[UITabBarController alloc] init];
    self.tabBarController.viewControllers = @[viewController1, viewController2, viewController3];
    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];
    return YES;
}

このようにストーリーボード識別子を割り当てます --> ここに画像の説明を入力

チェックを外すと、最初のView Controllerです-> ここに画像の説明を入力

出力は次のようになります..

ここに画像の説明を入力ここに画像の説明を入力

于 2013-08-28T13:30:03.487 に答える