Итак, у меня есть приложение, основанное на TabBarController, и в одной из моих вкладок я использую UIAccelerometer.Проблема, которую я вижу, заключается в том, что я могу нормально обращаться к акселерометру и использовать его до тех пор, пока не переключу вкладки и не переключусь обратно.Скажем, например, мой акселерометр находится на tab1, и я нажимаю tab2, и обратно на tab1 акселерометр выключен.
В моем методе ViewWillAppear я устанавливаю viewcontroller как первый ответчик так:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self becomeFirstResponder];
[accelerometer setDelegate:self];
...}
акселерометр моя переменная экземпляра для viewcontroller.Итак, я читал в http://developer.apple.com/library/ios/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/EventHandlingiPhoneOS.pdf это руководство, что, если вы установите делегат акселерометра в ноль, телефон отключит его, чтобы продлить срок службы батареи.Отметив это, я удалил эту строку кода из моего метода 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, и сеть привела к малой информации об этом.Единственная другая информация, которую я могу здесь дать, это то, что, если я переключаю вкладки назад и вперед, я могу перемещаться назад на одну страницу (она также имеет навигационный контроллер и является последней страницей в навигации), и акселерометр затем работает нормально.Мне кажется, что он не устанавливает контроллер представления в качестве первого респондента.Я надеюсь, что есть что-то очевидное, чего я здесь не получу.Любая помощь будет высоко ценится !!!