2010-12-03 9 views
6

それぞれのビューコントローラ(.h/.m)に2つのNIBファイルがあるアプリケーションを作成しようとしています... 1つはポートレート用、もう1つはランドスケープ用です。これはオリエンテーションをサポートする「標準的な」方法ですか、またはプログラムでオリエンテーションビューを手動で設定する必要がありますか?私が直面している問題は、ユーザーが向きを反転させると、すべてのビューがリセットされるためです(ユーザーはテキストフィールド/ビューの入力を再入力する必要があります)。iPhoneのオリエンテーションと2つのNibファイル

- (void) changeTheViewToPortrait:(BOOL)portrait andDuration:(NSTimeInterval)duration{ 

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:duration]; 

if(portrait) { 
    [[NSBundle mainBundle] loadNibNamed:@"myview-portrait" owner:self options:nil]; 
    [self setupLayout]; 
} else{ 
    [[NSBundle mainBundle] loadNibNamed:@"myview-landscape" owner:self options:nil]; 
    [self setupLayout]; 
} 

[UIView commitAnimations]; 

}

+0

こんにちはE-manは有効なのですか?appleによるアプリのレビュー中に問題を引き起こしますか?私はあなたと同じ方法で問題を抱えていますか? –

答えて

7

Appleはビューコントローラのインターフェイスの向きの管理」というタイトルのセクションで自分のビューコントローラプログラミングガイドで複数の向きをサポートするためのさまざまな提案の数を持っています。ここ

は私のオリエンテーション方法であり、 "そのセクションを読んで、あなたのニーズに合った提案があるかどうかを確認することをお勧めします。

私はあなたが上に示した戦略をアプリケーションで使用していて、かなりうまくいくように思えました。

ビューが「リセット」されている問題を解決するには、ユーザーがコントロールからコントロールに移動する際にユーザーが入力したデータへの参照を保持することをお勧めします。その後、向きが変わったときに、ユーザーの「進捗状況」が失われないようにコントロールを再投入することができます。

+1

もっと清潔な方法がありましたら幸いです:( – Exegesis

+0

この方法は有効ですか?これはリンゴによるアプリケーションのレビュー中に問題を引き起こしますか?これと同じ方法を使用していますが、問題はありますか? –

+1

それは有効ですか?使用されるメソッドは公開APIです。 – TigerCoding

関連する問題