私は、かなり複雑なコンテインメント ビュー コントローラー階層を持つエンタープライズ iPad クライアント アプリに取り組んできました。最近、アプリの開始ビューであるサーバー ログイン ビューに再設計を実装する必要がありました。この機会に、自動レイアウトを使用して再設計を実装し、アプリの残りの部分は変更しないことにしました。数日間 WWDC ビデオを見てコードをハッキングした後、ローテーションとキーボードの表示/非表示イベントのために、ログイン テキスト フィールドの位置をアニメーションでスムーズに変更することができました。結果に満足して、リファクタリング ブランチを git マージしましたが、ログイン後にアプリを使用するとアプリがクラッシュし、デバッガーのヒントが表示されませんでした。私は最終的に、自動レイアウトがどういうわけか子コンテナー ビュー コントローラーにカスケードされていることを理解しました。
Main.storyboard には、RootViewController ルート ビュー コントローラーを持つ "メイン" ナビゲーション コントローラーがあり、そのビューは子ビュー コントローラー ビューのコンテナーであり、ログイン ビューから始まり、ユーザーが最後に使用したビュー コントローラーにスワップされます。リファクタリング後、IB では、サーバー ログイン コントローラーで [自動レイアウトを使用] がオンになっています。しかし、突然、自動レイアウトが有効になっていない子ビュー コントローラーの 1 つもチェックされます。そのView Controllerでチェックを外すと、突然、サーバーログインビューコントローラーの自動レイアウトチェックボックスがオフになります。これは、ストーリーボードのすべてのビュー コントローラーで自動レイアウトが有効/無効になっていることを意味しますか?? そうでない場合、誰かが何が起こっているのか知っていますか? Xcode 4.6