UIPopover без каких-либо стрелок - PullRequest
50 голосов
/ 04 августа 2010

Можно ли представить поповер без каких-либо стрелок, указывающих куда-то?

Ответы [ 17 ]

99 голосов
/ 02 сентября 2010

Да, можно просто сделать:

 [self.popoverController presentPopoverFromBarButtonItem:anItem   
                                permittedArrowDirections:0
                                                animated:YES];

Ноль означает отсутствие направления.

22 голосов
/ 09 октября 2015

Для iPhone и swift 2.0 попробуйте этот

Код для запуска popover

initiatePopover(){
    let popoverContent = self.storyboard?.instantiateViewControllerWithIdentifier("XYZController") as! XYZController
    let nav = UINavigationController(rootViewController: popoverContent)
    nav.modalPresentationStyle = UIModalPresentationStyle.Popover
    let popover = nav.popoverPresentationController
    popoverContent.preferredContentSize = CGSizeMake(250 ,200)
    popover!.delegate = self
    popover!.sourceView = self.view
    popover!.sourceRect = CGRectMake(200,200,0,0)
    popover!.permittedArrowDirections = UIPopoverArrowDirection(rawValue: 0)
    self.presentViewController(nav, animated: true, completion: nil)
}

И добавьте его в свой ViewController

func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
    return UIModalPresentationStyle.None
}
8 голосов
/ 12 сентября 2011

Установите permittedArrowDirections в 0.

permittedArrowDirections:0

Код -

[self.popoverController presentPopoverFromBarButtonItem:anItem   
                                permittedArrowDirections:0
                                                animated:YES];

Ноль говорит "NoDirection".

7 голосов
/ 19 января 2017

Swift3 , у меня этот код работает

popover.permittedArrowDirections = .init(rawValue: 0)
4 голосов
/ 28 января 2016

Для Swift 2.0 и iOS9 решение:

popoverViewController?.permittedArrowDirections = UIPopoverArrowDirection()
4 голосов
/ 07 июля 2011

Попробуйте, у меня все работает.

[self.popoverViewController presentPopoverFromRect:rect inView:self.view  permittedArrowDirections:0 animated:YES];
4 голосов
/ 05 сентября 2018

Swift4 :

popover.permittedArrowDirections = []              
3 голосов
/ 10 июля 2013

Это прекрасно работает для меня.

[popoverController presentPopoverFromRect:CGRectMake(0, 0, 20, 20)
                                    inView:self.view 
                  permittedArrowDirections:NULL 
                                  animated:YES];

Наслаждайтесь кодированием.

2 голосов
/ 04 августа 2010

Нет, опция UIPopoverArrowDirectionNone отсутствует, и UIPopoverArrowDirectionUnknown выдает исключение, я думаю, если вы попытаетесь использовать это для представления.

Вместо контроллера поповера вы можете вызвать presentModalViewController:animated:установите для контроллера, который вы представляете, режим модального представления UIModalPresentationFormSheet или, возможно, UIModalPresentationPageSheet.Это более традиционные всплывающие окна, чем всплывающие окна.

2 голосов
/ 14 апреля 2016

В моем случае для быстрых разработчиков

popoverController.sourceView = self.view
popoverController.sourceRect = self.view.bounds
popoverController.backgroundColor = UIColor.brownColor()

popoverController.permittedArrowDirections = UIPopoverArrowDirection.init(rawValue: 0)
popoverController.sourceRect = CGRectMake(width/4, hieght/4, width/2, hieght/2);
...