UISplitViewController без полномочий root, принудительно применяя пользовательские методы вращения, заставляет исчезнуть главное представление - PullRequest
0 голосов
/ 22 декабря 2010

Я пытаюсь добавить разделенное представление внутри панели вкладок, и поскольку разделенное представление не является корневым, оно не получает должным образом уведомления о повороте, поэтому методы делегата никогда не вызываются для добавления кнопки.на панель инструментов в подробном представлении.

Я настроил его так, чтобы при повороте я мог генерировать всплывающее окно, но когда этот метод вызывается, представление исчезает из ландшафтного режима, и если вы активируете его, а затем поворачиваете обратно в ландшафт,черная пустая коробка, где раньше был главный вид.Как мне избавиться от этого?

-(void) displayPopover:(id)sender
{
    //Toggle the popover: if it's showing, hide it
    if (popoverController != nil && [popoverController isPopoverVisible]) 
    {
        [popoverController dismissPopoverAnimated:NO];
    }
    else
    {
        //Create a Popover displaying the master view
        if (popoverController == nil)
        {
            popoverController=[[UIPopoverController alloc] initWithContentViewController:self->rootController];
            popoverController.popoverContentSize=CGSizeMake(300, 500);
    }
    [popoverController presentPopoverFromBarButtonItem:[detailController.toolbar.items objectAtIndex:0] permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];
}

Ответы [ 3 ]

1 голос
/ 04 мая 2011

Вам нужно будет удалить все объекты из окна, используя:

 [appdelegate window ] subviews] objectAtIndex:0] removeFromSuperview]; 

Затем добавьте splitview в окно, вы можете получить обратные вызовы просмотра.

1 голос
/ 26 апреля 2012

Я бы порекомендовал либо найти способ получить SplitViewController в качестве пользователя root, либо создать собственный подкласс UISplitViewController, который допускает размещение без полномочий root. Мне действительно нравится то, что Мэтт Джеммелл сделал здесь: http://mattgemmell.com/2010/07/31/mgsplitviewcontroller-for-ipad Использование пользовательского подкласса, такого как Matt, позволит вам воспользоваться всеми теми же методами делегатов, которые позволил бы SplitView от имени root. Я использовал его в проекте, где я хотел, чтобы мой SplitView отображался как модальный - почти невозможно с традиционным UISplitViewController.

0 голосов
/ 22 декабря 2010

, поэтому в вашем разделенном представлении включено вращение (shouldAutorotateToInterfaceOrientation:), теперь вы должны убедиться, что в контроллере вкладок также включено вращение (должно быть appDelegate, я прав?) И вы должны убедиться, что каждое другое представление то есть в вашем TabBar также включено вращение!

, поэтому, если ваш TabBar содержит 2 вкладки, вы должны установить вращение в 3 классах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...