1

AutorotateToInterfaceOrientation に関して奇妙なことがあります。

Debugger コンソールで、View Controller の 1 つに対して次のメッセージが表示されます。

ビュー コントローラーは、すべてのインターフェイスの向きに対して -shouldAutorotateToInterfaceOrientation: から NO を返しました。少なくとも 1 つの向きをサポートする必要があります。

しかし実際には、回転は完全にうまく機能します。そして、メッセージは間違っています。-shouldAutorotateToInterfaceOrientation のコードは次のとおりです。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return ([centerPoint autoRotateFlag]||(interfaceOrientation==centerPoint.userOrientation));
}

また、autoRotateFlag が単に true (YES) であるか、centerPoint.userOrientation でない場合は、4 つの許容値のいずれかに固定されています。

これは私にとって長い間機能しており、アプリはまだ機能しています。このメッセージがどこから来ているのかわかりません。

何か案が?

4

1 に答える 1

1

NSLog を使用して、ソフトウェアにトレースを入れることによって。viewDidLoad が呼び出される前に、 shouldAutorotateToInterfaceOrientation が 7 回呼び出されていることに気付きました。

私の変数「autoRotateFlag」はviewDidLoadを通過するときにのみ初期化されるためです。それは私の問題を説明しています。

ただし、viewDidLoad の前に shouldAutorotateToInterfaceOrientation を呼び出すことができるとは考えていなかったことを認めなければなりません。明らかに私は間違っていました。そして、これらすべてのメソッドが呼び出される順序をまだ完全には理解していません。

于 2012-05-25T01:23:18.373 に答える