0

私のアプリケーションでは、3 つのビュー コントローラーがあり、それぞれがボタン クリックで移動します。私の最初のView Controllerで、コマンドを追加しました

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(Orientchanged:) name:UIDeviceOrientationDidChangeNotification object:nil];

UIViewControllerに追加された最初のものでのみ機能しappdelegateます。しかし、それは他のものでは機能せずUIViewControllers、イベントを呼び出しますselector。理由は何ですか?view controllersappdelagateに他を追加する必要があります。


メソッド内のコードの例Orientchanged::

- (void)Orientchanged:(NSNotification *)notification 
{
    UIDeviceOrientation devOrientation = [UIDevice currentDevice].orientation;
    scrollWidth_L = 1024;
    scrollWidth_P = 768;
}
4

2 に答える 2

1

特定の のオブザーバーを追加しましたviewController。現在の表示方向が変更されたviewControllerことを知るには、他のすべての を追加する必要があります。viewController

グローバルに知りたい場合は、オブザーバーを に追加しappDelegateます。

observer:不要な場合は削除することを忘れないでください。

編集:オブザーバーは、それが含まれている場所によって異なります。ここでaddObserver:selfself、あなたの最初のView Controllerです。

于 2012-12-31T09:35:44.463 に答える