2013-11-12 2 views
1

У меня есть кнопка в одном из контроллеров контроллера панели. Все настроено в раскадровке. Я зарегистрировал метод действия, как этотTouch Up Внутреннее событие не работает после поворота панели вкладок

- (IBAction)buttonPressed:(id)sender { 
    NSLog(@"Button pressed"); 
} 

Дело в том, что как только я сделать левой и верхней ограничения (чтобы заставить его остаться в правом верхнем углу) подправить внутри события перестает работать после я изменить вращение. Так что просто открывайте приложение в портретном режиме - метод работает. Измените пейзаж, и я не могу нажать кнопку внезапно.

Я воссоздал проблему в этом легком example project.

Большое спасибо.

ответ

2

Просто введите следующий код в свой класс TabBarViewController.

- (void)viewDidLayoutSubviews 
{ 
    // fix for iOS7 bug in UITabBarController 
    self.selectedViewController.view.superview.frame = self.view.bounds; 
} 
+0

работ. Спасибо, бутон! –

2

Недавно я заметил ту же ошибку в своем приложении. Сначала я попробовал метод Славко Петковского. Но это вызвало у меня еще одну ошибку с поворотом и получением правильных границ и рамки, поэтому я продолжал искать.

Я нашел еще одно решение этой проблемы, в основном устанавливая автоматическую проверку маски зрения контроллера вида в xib. Но поскольку стрелки в инспекторе в моем Xcode (версия 5.0.1) неактивны, и вы не можете их установить, вам нужно открыть файл xib в текстовом редакторе, найдите свойство autoresizingMask для основного вида и измените его так:

<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 

EDIT:

в качестве альтернативы вы можете сделать это в коде вашей точки зрения контроллера - тот же результат, как и в изменениях в Xcode:

self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
Смежные вопросы