2013-05-21 4 views
0

Я использую WEPopover (https://github.com/werner77/WEPopover) для отображения popovers на iPhone. К сожалению, он не работает, если я использую общий номер UIViewController для contentViewController.WEPopover не работает с UIViewController! = UITableViewController

- (IBAction)showPopover:(id)sender 
{ 
    UIViewController *contentViewController = [[PopoverContentViewController alloc] init]; 
    popoverController = [[WEPopoverController alloc] initWithContentViewController:contentViewController]; 
    popoverController.delegate = self; 
    [popoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:(UIPopoverArrowDirectionUp) animated:YES]; 
} 

Это просто представляет собой черный popover без содержания. PopoverContentViewController - это обычный UIViewController, созданный XCode без каких-либо изменений. В моем раскадровке я добавил ViewController, установил его размер в произвольную форму и установил размер представления на что-то ниже стандартного размера iPhone. Я установил владельца этого контроллера view PopoverContentViewController. К сожалению, он не показывает контент, он просто показывает черное всплывающее окно.

Если я меняю PopoverContentViewController на UITableViewController, он показывает вид таблицы, но это не то, что я хочу.

Что я сделал не так?

ответ

2

Возможно, вам потребуется загрузить контроллер просмотра из раскадровки, а не создавать его с помощью alloc/init, как вы показываете.

Что-то вроде этого:

UIViewController* contentViewController = [[UIStoryboard storyboardWithName: @"yourStoryboardName" bundle: nil] instantiateViewControllerWithIdentifier: @"yourViewControllerID"]; 
+0

Thx, это так! Теперь контроллер отобразится. Но в моей раскадровке контроллер имеет произвольную форму, а размер представления - 220x135 точек. К сожалению, popover намного больше, почти весь размер iPhone. Зачем? И стрелка вне экрана, вы видите только ее немного. – tester

+0

@tester - в коде установите свойство contentSizeForViewInPopover вашего контроллера содержимого в правильное значение CGSize. Вам нужно сделать это до его представления (WEPopover не отслеживает значение для изменения после презентации). – TomSwift

+0

работает как шарм! 1 вверх – tester

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