UISplitViewController iOS 5.1 вызывает ошибку направления стрелки всплывающего окна

Мое приложение отлично работало до iOS 5.1. Это UISplitviewController с UINavigationController на левой панели, и панель сведений обновляется в зависимости от выбора, сделанного в этом UINavigationController.

Работает новая выдвижная слева замена поповера, характерная для iOS 5.1; это не выглядит великолепно, но это работает.

Что кажется сломанным, так это отображение «всплывающего окна» с кнопки панели в портретной ориентации. Это вызывает исключение - 'NSInternalInconsistencyException', reason: 'Unknown direction passed to _popoverViewSizeForContentSize:arrowDirection:'

Я попытался переопределить метод, который отображает всплывающее окно следующим образом:

-(void)splitViewController:(UISplitViewController *)svc popoverController:(UIPopoverController *)pc willPresentViewController:(UIViewController *)aViewController { [self.popoverController presentPopoverFromBarButtonItem:self.masterPopoverButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; }

Но я все еще получаю ту же ошибку. Кто-нибудь может помочь?


person JOHN NEWBURY    schedule 11.04.2012    source источник


Ответы (1)


Используйте приведенные ниже делегаты для отображения главной страницы со страницы сведений.

- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:

    (UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
    {
        barButtonItem.title = NSLocalizedString(@"Master", @"Master");
        [self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES];
        self.masterPopoverController = popoverController;
    }

    - (void)splitViewController:(UISplitViewController *)splitController willShowViewController:(UIViewController *)viewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
    {
        // Called when the view is shown again in the split view, invalidating the button and popover controller.
        [self.navigationItem setLeftBarButtonItem:nil animated:YES];
        self.masterPopoverController = nil;
    }
person Raees Valapuram Madathil    schedule 12.06.2013