上部にアクションバー(4つのボタンがあるビュー)、テーブルビュー、そしてテーブルビューの下に別のビューを含むビューを作成するカスタム UIViewController があります。レイアウトはすべてコードで行われ、自動レイアウトは使用されていません。iOS 7.0 および 7.0.2 を搭載したさまざまなデバイスですべてが完全に機能しますが、シミュレーターでは、コントローラーのルート ビューがナビゲーション バーの下ではなく、画面の右上隅 (0,0) に固定されます。
viewDidAppear: メソッドでリレーを強制的に実行するつもりですが、これはハックのようです...
洞察をありがとう
編集:画像を追加しました。UIView が強調表示されていることがわかります。ManicMonkOnMac が述べたように、UIView はツールバーの下にあります (ただし、これはシミュレーターでのみ発生し、デバイスではビューが正常に整列します) コントローラーの loadView メソッドで、ビューを作成するときにフレームを設定します。
- (void)loadView
{
// Our parent view controller will resize us appropriately. The size set
// here is a convenience for initial view layout.
self.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 320)];
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}
しかし、このフレームは後で変更されます。ただし、私のコードではなく、UIkit コードによる)
Edit2: loadView メソッド本体を追加