2013-08-31 4 views
0

У меня есть вид входа, который я хочу отобразить в popover. Я делаю это из кода, как показано ниже:Контроллер просмотра Popover не отображается

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:[NSString stringWithFormat:@"MainStoryboard_%@", isIPAD ? @"iPad" : @"iPhone"] bundle:NULL]; 
UIViewController *navCtrl = [storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"]; 
UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:navCtrl]; 
popover = popover; 
popover.delegate = self; 
popover.popoverBackgroundViewClass = [PopoverBackground class]; 
self.popover = popover; 
[self.popover presentPopoverFromRect:((UIButton *)sender).bounds 
           inView:self.view 
      permittedArrowDirections:UIPopoverArrowDirectionDown 
          animated:YES]; 

Но попушер никогда не показывает. Но странная вещь - viewdidload и viewwillappear для loginview. И при повторном нажатии на представление вызывает метод делегата popover didDismissPopover.

Несмотря на то, что он отлично работает, когда представлен с поп-сегмента.

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

Неужели кто-либо сталкивался с такой проблемой.

ответ

1

Решено!

Оказалось, что я указывал направление стрелки как UIPopoverArrowDirectionDown, а прямоугольник для отображения был неправильным. Изменен прямоугольник (100, 500, 10, 10) и вуаля! Все прекрасно.

Смежные вопросы