ModalView, представленный MasterViewController, больше не является полноэкранным в iOS 5.1.

У меня есть приложение Master/Detail и есть кнопка в правом верхнем углу MasterViewController в разделенном представлении, которое загружает контроллер представления «Информация» с использованием модального представления:

всплывающее окно в iOS 5.0

При нажатии кнопки представление загружается и заполняет весь экран в iOS 5.0 и ниже (это поведение, которое я хочу):

- (IBAction)showAppInfo:(id)sender 
{
    InfoViewController *infoViewController = [[InfoViewController alloc] 
        initWithNibName:@"InfoViewController" bundle:nil];
    infoViewController.delegate = self;
    [self presentModalViewController: infoViewController animated: YES];
}

modalView в iOS 5.0

Однако, когда я запускаю это в симуляторе iOS 5.1, он больше не заполняет весь экран iPad, а заполняет только то, что находится внутри главного представления:

модальный вид в iOS 5.1

Что я могу сделать, чтобы этот InfoViewController заполнил весь экран в iOS 5.1, как это было раньше?


person 5StringRyan    schedule 12.04.2012    source источник


Ответы (1)


Я предполагаю, что вы используете UIPopoverController, попробуйте это

InfoViewController *infoViewController = [[InfoViewController alloc] 
    initWithNibName:@"InfoViewController" bundle:nil];
UIPopoverController *popoverController      =   [[UIPopoverController alloc] initWithContentViewController:infoViewController];
    popoverController.popoverContentSize        =   CGSizeMake(500.0, 583.0);
    popoverController.delegate                  =   self;
    [popoverController presentPopoverFromRect:sender.bounds inView:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
person mChopsey    schedule 12.04.2012
comment
Просто любопытно, есть ли способ сделать это без ручного обновления размеров всплывающего окна? Потому что я предполагаю, что мне придется изменить его размер до нормального после закрытия информационного окна. - person 5StringRyan; 12.04.2012
comment
если вам нужен контроллер popover, вы должны указать его размеры. Теперь из вашего изображения я понял, что у вас есть основная кнопка, и когда вы нажимаете на нее, вы правильно показываете свой контроллер InfoViewController? так что ты должен это сделать. - person mChopsey; 13.04.2012
comment
Если это так, то почему в этом не было необходимости до iOS 5.1? - person 5StringRyan; 13.04.2012