• 締切済み

iPhone IBを使用しないでUITabBarControllerを

iPhone IBを使用しないでUITabBarControllerを実装 - (void)applicationDidFinishLaunching:(UIApplication *)application { window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // UIViewControllerを継承したクラス page1Controller = [[Page1Controller alloc] initWithNibName:nil bundle:nil]; page2Controller = [[Page2Controller alloc] initWithNibName:nil bundle:nil]; // 質問1 tabBarController = [[UITabBarController alloc] initWithNibName:nil bundle:nil]; [tabBarController setViewControllers:[NSArray arrayWithObjects:page1Controller, page2Controller, nil] animated:NO];  // 質問2 [window addSubview:tabBarController.view]; tabBarController.selectedIndex = 1; } 上記プログラムなのですが、 質問1.UITabBarControllerのsetViewControllersメソッドを利用して、     UIViewControllerのインスタンスをセットしているのですが、     setViewControllersメソッドは、     UITabBarControllerのプロパティviewControllersに     値をセットするためのセッターなのでしょうか? 質問2.[window addSubview:tabBarController.view]のviewは、     UITabBarControllerが継承しているUIViewControllerの     view(ゲッター)なのでしょうか? 上記の流れで、UITabBarControllerが、UIVeiwControllerを集約?しているので、 (@property(nonatomic, copy) NSArray *viewControllersとUITabBarControllerのヘルプに明記しているので) WindowのaddSubViewにセットするのは、UITabBarControllerのUIViewControllerのviewじゃないのかな? と初心者ながらの疑問です。 継承などの理解不足があると思いますが、ご教授の程お願いいたします

みんなの回答

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.1

Nibファイル(.xib)を使わずに、UIWinodwを生成する理由はなんでしょうか?そして、プログラムでUIWindowを生成することは、成功しているのでしょうか? Nibファイルで生成したUIWindowに、UITabBarをaddSubviewすれば、例示のコードのままで、お望みのことが実現するのではないかと思います。 ※質問1,2について、まずちゃんと動くコードを作ってから、お考えになっては、いかがですか?

ques9999
質問者

補足

貴重なお時間、ご教授の程ありがとうございます。 Nibファイルを使わない理由ですが、IBの使い方の勉強ではなく、プログラムの勉強をしたいためです (Javaのswingの勉強の続きとして理解できればと思っております) プログラムでのUIWindow、UINavigationController、UIViewControllerの生成もできております。 質問1,2のプログラムで、起動は、確認しているのですが、 UIWindowのaddsubViewに渡す引数、 UITabBarController.viewが何なのか?が理解できていない状態ですので、 質問した次第です

関連するQ&A