Вероятно, вы можете сохранить счетчик в методе shouldAutorotateToInterfaceOrientation: так, чтобы его нужно было запустить несколько раз, прежде чем вы на самом деле переключитесь. Что-то вроде схемы «отказов» в электронике.
(Помимо: в электронике, если вы запускаете какое-либо действие при каждом нажатии физической кнопки, вы обычно должны отменить его. Это происходит потому, что, поскольку кнопка является физическим объектом, она не сможет установить идеальный контакт, когда пользователь нажимает на него. Обычно будет несколько коротких импульсов, пока он вступает в контакт. Таким образом, микропроцессор ведет отсчет, и когда переключатель нажимается в течение полных 10 мс или около того, он фактически срабатывает.)
Итак:
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
counter++: //ivar
if (counter > 2) {
counter=0;
return YES;
} else {
return NO;
}
}