かなり単純なことを行うのにいくつかの困難が発生しています。何かが欠けていますが、表示されません...
非常に単純なアプリ(IBを使用)で問題を再現しました:
- アプリのメイン ViewController は UINavigationController です。
- NavigationController のルートは「FirstViewController」です。
- FirstViewController と SecondViewController は空の UIViewController サブクラスです。
- クラスの作成時に XCode によって生成された XIB ファイルでは、AutoLayout が有効になっています。
- SecondViewController の上部と下部にラベルを配置しました (垂直スペースの制約 = 0)。
ChildViewController の使用
問題は、「ChildViewControllers」メソッドを介して SecondViewController を表示すると、iPhone4 で問題が発生することです。下のラベルが表示されません。
// In FirstViewController.m
- (IBAction)child:(id)sender {
[self addChildViewController:self.secondVC];
[self.view addSubview:self.secondVC.view];
[self.secondVC didMoveToParentViewController:self];
}
NavigationController の使用
NavigationController を介して「SecondViewController」を表示すると、問題なく、SecondViewController が正しく表示されます。
// In FirstViewController.m
- (IBAction)push:(id)sender {
[self.navigationController pushViewController:self.secondVC animated:YES];
}
また、SecondViewController が NavigationController を介して一度表示されるとすぐに、常に適切に表示されます。
私は確かに何かが欠けていますが、何ですか?:p 何かアイデアはありますか?
ドロップボックスに簡単なプロジェクトをアップロードしました: https://dl.dropbox.com/u/36803737/sharebox/AutoLayoutTest.zip
ありがとう!
ジュリアン