Вы можете объявить переменную BOOL в методе shouldAutoRotate, который устанавливается при его вызове, а затем в методе селектора для отображения и скрытия подпредставления, вы можете использовать простое условие, если представление о погоде поворачивается или нет.
вот так:
if(viewRotated)
{
subView.hidden = YES;
}
viewRotated = NO;
Редактировать часть:
Я не уверен, что происходит в этом коде, но он отлично работает в одном из моих приложений, кодирование ipad которого было сделано моим другом.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if(UIInterfaceOrientationIsPortrait(interfaceOrientation))
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillShowNotification
object:nil];
}
else
{
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillShowNotification
object:nil];
}
return YES;
}
И вы можете снова добавить уведомление, если ваше UIKeyboardWillHideNotification не запущено, добавив эти уведомления снова в этом методе.
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation