私はMainWindow.xibにロードされたビューを持っています。これは、画面全体に画像を表示するuiimageviewを持つビューです(320 X 480)。アプリの負荷が私は、このビューを表示し、その後、私はIPhone - UIView addSubview上部のギャップ
[self.view addSubview:tabbarController.view];
タブバーコントローラはそれに追加2つのビューコントローラとUITabBarControllerで行うと。 tabbarControllerのビューをサブビューに追加すると、約20ピクセルの上にギャップが残されます。私のアプリはステータスバーを持っていますが、これは基本的に別の場所のための部屋です。これは私のビューコントローラにこれを追加しない限り起こります:
self.view.frame = CGRectMake(0, 0, 320, 480);
誰でもこれを説明できますか?私はしていた
self.view = tabbarController.view;
しかし、私はそれをするべきではないと言われました。今はサブビューを追加していますが、なぜ20pxを表示しないように私のビューのCGRectを調整する必要があるのか分かりません。
ありがとうございます。たぶん私は戻って、私のアプリの一部を再構築する必要があります。私は正しいやり方をしたいと思っていますが、View ControllerロジックとApp Delegateを分離するほうが良いかもしれないと思っています。これは、なぜ私のルートビューコントローラで、私はself.view = tabbarController.viewをサブビューとして追加するのではなく、私はギャップを得ることができなかった理由を説明します。素晴らしい答え。私ができるなら、私はもっと票を投じるだろう。 – Brian
あなたの本能がここで良かったようです。これはCocoa Touchの設計上の制限の1つに過ぎません。 必ずしも、あなたのアプリケーションデリゲートのウィンドウにtabbarController.viewを追加する必要はありません。それが最も理にかなっていると思われる場合は、View Controllerに追加することができます。 keyWindowメソッドを使用するか、コントローラのプロパティとしてapplicationDidFinishLaunching:に戻すだけで、ウィンドウオブジェクトにアクセスする必要があります。 – cduhn
これは、tabbarcontroller.viewがwindow.viewのサブビューになったことを意味していませんか? しかし私の場合、私は広告の表示があり、次に第2のコンテンツビューがあります。そして、私はcontentviewにtabbarcontroller.viewを追加しています。このようにして、viewcontrollerは広告に応じてcontent/adviewを処理します。私は、ウィンドウにtabbarcontroller.viewを追加する場合、私は私のviewcontrollerを使用してビューを処理することができるとは思わない。どう思いますか? – LolaRun