Я создал пользовательское представление предупреждения, и я добавляю его в UIWindow. Проблема в том, что когда я меняю ориентацию симулятора iOS 7.1, ориентация вида предупреждения не меняется. Ориентация правильно меняется при работе с симулятором iOS 8. Вот где я добавляю его в UIWindow:Пользовательский предупреждающий просмотр не может изменить ориентацию в iOS 7.1 симуляторе
-(void)show
{
UIWindow *pWindow = [[UIApplication sharedApplication] keyWindow];
[pWindow addSubview:self];
self.frame = pWindow.bounds;
}
Вид персонализированного оповещения получает загружаемый из класса контроллера представления, когда любая клетка его табличном получает постучала:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (!self.customAlert) {
self.customAlert = [[[NSBundle mainBundle] loadNibNamed:@"CustomAlertViewWIthGesture copy"
owner:self
options:nil] objectAtIndex:0];
}
self.customAlert.delegate = self;
self.customAlert.staticText = @"All 100 entities selected";
self.customAlert.actionableText = @"Select all from server";
[self.customAlert show];
}
Насколько я знаю, обратные вызовы ориентации интерфейса реализованы только в контроллере просмотра, верно? И это должно включать переопределение размера фрейма и т. Д. Я использую ограничения макета для представления. Поэтому управление размером кадра при ориентации интерфейса не кажется мне отличной идеей. – StudentX
Насколько я знаю, у вас нет выбора для управления размерами кадров. В таком состоянии я всегда предпочитаю добавлять subview в rootviewcontroller, чтобы уменьшить количество головной боли. – Tirth
Yup .. :) Я отправил ответ. Для системных версий, меньших, чем iOS 8.0, представление предупреждения добавляется к первому вложенному окну окна, который по существу является контроллером представления. Для iOS 8 и выше представление предупреждения добавляется в окно, как и раньше. – StudentX