したがって、TabBarController に基づくアプリケーションがあり、タブの 1 つで UIAccelerometer を使用しています。私が見ている問題は、タブを切り替えて元に戻すまで、加速度計に問題なくアクセスして使用できることです。たとえば、加速度計がタブ 1 にあり、タブ 2 をクリックしてタブ 1 に戻り、加速度計がオフになっているとします。
私のViewWillAppearメソッドでは、viewcontrollerをfirstresponderとして次のように設定しています:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self becomeFirstResponder];
[accelerometer setDelegate:self];
...}
accelerometer は、viewcontroller のインスタンス変数です。だから私はhttp://developer.apple.com/library/ios/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/EventHandlingiPhoneOS.pdfこのガイドを読んでいました。加速度計のデリゲートをnilに設定すると、電話はバッテリーを節約するためにオフになります生活。そのことに注意して、viewWillDisappear: メソッドからそのコード行を削除しましたが、これはかなり小さくなっています。
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
//commented out the line below and no dice
//[accelerometer setDelegate:nil];
if([[self tableView]isEditing])
[[self tableView]setEditing:NO];
[self resignFirstResponder];
}
SO とネットを熟読しても、これに関する情報はほとんど得られません。ここで私が提供できる唯一の他の情報は、タブを前後に切り替えると、1 ページ後方にナビゲートし (navigationController も取得し、ナビゲーションの最後のページです)、加速度計を前方に移動して正常に動作することです。ビューコントローラーをファーストレスポンダーとして実際に設定していないように思えます。ここに来ていない明らかな何かがあることを願っています。どんな助けでも大歓迎です!!!