2009-08-23 12 views
0

私は以下のコードをtrueに評価し、OS 2.2.1では右(または左)に回転する中カッコ内でコードを実行します。しかし、同じコード行は、コンパイルされてOS 3.0で実行された場合、真と評価されません(または中括弧に入ります)。OS 3.0では、iPhoneのインターフェイスの向きに関する記述が機能していませんか?

デバッガおよびログでは、私はこれはTextViewの上textViewDidBeginEditingメソッドの内部にある3.0

用にコンパイルした場合、スキップ...

は2.xと、これがどのように扱われるかに3.0相対間に何かが変化しましたか?サイズを変更しないテキストフィールドは、ユーザーが修正しようとしているバグとして気づいています...

これは私のコードではありません。私はそれを見て、私は私がそうすべきだと考え始めています回転のためのいくつかのデリゲートメソッドを実装する...?あなたはこのかどうかをテストしたい場合しかし、それはまだバグこの文が動作していないことを私...何かアドバイスを事前に

おかげで...

if((self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft)||(self.interfaceOrientation == UIInterfaceOrientationLandscapeRight)) 
{ 
    [self setTextViewHeight:107]; 
    NSLog(@"inside if self.interfaceorientation..."); 

} 

答えて

0

textviewheight割り当ての前にログ文をお試しくださいブロックが入力されました(&は割当てのエラーによって早期に終了する場合ではありません)

+0

ありがとうございます - はい私はそれを行った...すべての場所に記録されます。また、メソッドの先頭にブレークポイントを設定し、コードをステップ実行し、ifブロックが3.0でスキップされ、2.xで実行されるのを見ました... 私は読みやすさのためにほとんどを取り出しました... –

1

私は理由はわかりませんが、このビューコントローラは自分自身のinterfaceOrientationを認識していません。私はそれがUITabBarControllerの "内部"にあるという事実と関連があると想定しています...そして、これを扱う "新しい方法"で、Appleは3.0で変更しました。

「変更」に関するコメントを歓迎します!

ボトムライン、self.interfaceOrientationは常に... 1(「アップ」)に

を、デバイスを回転させどんなにを評価した私は、参照を変更し、代わりにMyTabBarController.interfaceOrientationを使用してこれを解決しましたTabBarController "superclass"は、デバイスの向きが確実に「知っている」ように見えました。その参照を指定して

これは、すでにコードに存在していた(もちろん、私は...このクラスにMyTabBarControllerロードすべてUIViewControllers自体に行わMyTabBarControllerへの参照を、与えなければならなかった)...

、簡単な変更私の回転の「真」の状態へのアクセスを与えた...と予想する場合、このコードが走った...

if ((myTabBarController.interfaceOrientation == UIDeviceOrientationLandscapeLeft) || (myTabBarController.interfaceOrientation == UIDeviceOrientationLandscapeRight)) { 
    [self setTextViewHeight:116]; 
+0

Anビューからのこの動作の説明コントローラプログラミングガイド: "iPhoneアプリケーションでは、ウィンドウオブジェクトは現在の方向の変更に関連した多くの作業を行います。具体的には、最近のルートビューを持つビューコントローラで動作しますウィンドウに追加または表示されます。言い換えれば、ウィンドウオブジェクトは、ビューコントローラビューの表示で説明されているメカニズムの1つを使用してビューが表示されたフロントビューコントローラでのみ機能します。 – jemmons

+0

@jemmonsこれはコメントであり、答えではありません。このページで最も正しい答えです。 – bentford

関連する問題