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

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

Новый сдвиг с левой замены для popover, эндемичный для iOS 5.1 работает; он не выглядит великолепно, но он работает.

То, что кажется сломанным, - это отображение "popover" из кнопки панели в портрете. Это вызывает исключение - 'NSInternalInconsistencyException', reason: 'Unknown direction passed to _popoverViewSizeForContentSize:arrowDirection:'

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

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

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

Ответ 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;
    }