iPad uisplitviewcontroller левый вид становится черным

В одном из моих проектов для ipad левое представление uisplitviewcontroller становится черным. Но когда я поворачиваю iPad, ориентация портретная, левое окно отображается поверх левого окна. Кто-нибудь сталкивался с такой же проблемой?


person monsabre    schedule 13.04.2011    source источник


Ответы (2)


Я считаю, что проблема в вашей геометрии. Проверьте кадр, который вы установили для левого представления viewControllers.

Надеюсь, это поможет

person Zapko    schedule 13.04.2011

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

Поэтому я отклонил PopOver в методе:

- (void)splitViewController: (UISplitViewController*)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem {

if(defaultview)
defaultview.navigationItem.leftBarButtonItem=nil;

if (pc) {
    [self dismissPopup];
}

}

И добавил метод в мой DetailedViewController (тот же контроллер представления, который имел указанный выше метод UIPopOverDControllerDelegate)

-(void) dismissPopup{
if(pc)
{
    [pc dismissPopoverAnimated:YES];
    [pc release];
    pc = nil;
    isPopOverClosed = YES;
}   

}

Таким образом, убирая и отпуская объект «ПК», когда я поворачиваюсь, почернение левого вида исчезает.

Все идет нормально. Но я столкнулся с проблемой после вышеуказанного шага:

Вид слева на SplitView немного смещен вниз.

  • Это происходит только тогда, когда я поворачиваю симулятор iPad с портретного на альбомный, когда UIPopOver уже открыт.

  • Если я вручную закрою его в портретном режиме, щелкнув за пределами PopOver или щелкнув элемент PopOver
    BarButtonItem слева от панели инструментов
    , а затем повернув экран
    в альбомную ориентацию, я не столкнусь с этим
    Проблема. Левый вид
    SplitViewController расположен идеально.

    Любая подсказка, почему это может происходить?

person user777355    schedule 31.05.2011
comment
Вы, вероятно, получите лучший ответ, если это будет его собственный вопрос. - person griotspeak; 04.06.2011