iOS5: проблема UIPopover / Sliptview после обновления до iOS5 в xcode - PullRequest
0 голосов
/ 03 ноября 2011

После обновления моего iPad и xcode до последних версий iOS5 и xcode 4.2, когда я запускаю свое приложение на ipad, в альбомной ориентации разделенный экран работает должным образом, где, когда я поворачиваю его в книжную ориентацию, затем нажимаю кнопку/ значок меню Я получаю всплывающее окно, но никакого контента, только верхняя часть всплывающего окна не появляется.См. Прилагаемое изображение

Popover in portrait view

Кнопка меню генерируется с помощью кода, а не обычная кнопка, см. Ниже:

   -(void)viewMenu:(id)sender{

      [self.popoverController presentPopoverFromRect:self.view.frame 
                        inView:self.view
                        permittedArrowDirections:UIPopoverArrowDirectionUp
                        animated:YES];
      [self.popoverController presentPopoverFromRect:CGRectMake(10.0f, 50.0f, 10.0f, 10.0f) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
  }

Список меню заполняется с помощью plistcode.

немного больше кода splitview выглядит следующим образом:

   - (void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController: (UIPopoverController *)pc
   {
       barButtonItem.title = @"Menu";
       self.toolbar.tintColor = [UIColor colorWithRed:254.0/255.0 green:193.0/255.0 blue:32.0/255.0 alpha:1.0];
       self.toolbar.hidden = YES;
       NSMutableArray *items = [[self.toolbar items] mutableCopy];
       [items insertObject:barButtonItem atIndex:0];
       [self.toolbar setItems:items animated:YES];
       [items release];
       self.popoverController = pc;
        viewMenu.hidden = NO;
   }

   // Called when the view is shown again in the split view, invalidating the button and popover controller.
   - (void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
   {
       NSMutableArray *items = [[self.toolbar items] mutableCopy];
       [items removeObjectAtIndex:0];
       [self.toolbar setItems:items animated:YES];
       [items release];
       self.popoverController = nil;
        viewMenu.hidden = YES;

   }

Есть какие-нибудь идеи и как я могу исправить эту проблему?

1 Ответ

0 голосов
/ 04 ноября 2011

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

Большое спасибо Анне Карениной за наблюдение, позор, я не могу проголосовать за комментарий.

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

   -(void)viewMenu:(id)sender{
        [self.popoverController presentPopoverFromRect:CGRectMake(10.0f, 50.0f, 10.0f, 10.0f) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
    }

еще раз спасибо

...