Событие Touch Up Inside не работает после поворота панели вкладок
У меня есть кнопка в одном из контроллеров представления панели вкладок контроллера. Все настроено в раскадровке. Я зарегистрировал метод действия, как это
- (IBAction)buttonPressed:(id)sender {
NSLog(@"Button pressed");
}
Дело в том, что как только я накладываю левое и верхнее ограничения (чтобы оно оставалось в правом верхнем углу), подкрашивание внутри события перестает работать после того, как я меняю поворот. Так что просто откройте приложение в портретном режиме - метод работает. Перейдите в ландшафт, и я не могу нажать кнопку внезапно.
Я воссоздал проблему в этом простом примере проекта.
Большое спасибо.
2 ответа
Просто поместите следующий код в ваш класс TabBarViewController.
- (void)viewDidLayoutSubviews
{
// fix for iOS7 bug in UITabBarController
self.selectedViewController.view.superview.frame = self.view.bounds;
}
Недавно я заметил такую же ошибку в моем приложении. Сначала я попробовал Славко по методике Петковского. Но это вызвало у меня еще одну ошибку с поворотом и получением правильных границ и рамки, поэтому я продолжил поиск.
Я нашел другое решение для этой проблемы, в основном, установив маску автоматического изменения размера представления контроллера представления в xib. Но так как стрелки в инспекторе в моем XCode (версия 5.0.1) неактивны, и вы не можете их установить, вы должны открыть XIB-файл в текстовом редакторе, найти свойство autoresizingMask для основного вида и изменить его следующим образом:
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
РЕДАКТИРОВАТЬ:
В качестве альтернативы вы можете сделать это в коде контроллера представления - тот же результат, что и в изменениях в xcode:
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;