Question UIPopover sans flèches


Est-il possible de présenter un popover sans aucune sorte de flèches pointant quelque part?


46
2017-08-03 21:24


origine


Réponses:


Oui c'est possible juste faire:

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

Le zéro ne représente aucune direction.


97
2017-09-02 00:54



Pour iPhone et Swift 2.0, essayez celui-ci

Code pour initier un 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)
}

Et ajoutez ceci à votre ViewController

func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
    return UIModalPresentationStyle.None
}

21
2017-10-09 09:40



Met le permittedArrowDirections à 0

permittedArrowDirections:0

Code -

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

Zero dit "NoDirection".


8
2017-09-12 09:45



Swift3, ce code fonctionne pour moi

popover.permittedArrowDirections = .init(rawValue: 0)

6
2018-01-19 10:31



Essayez ceci, ça marche pour moi.

[self.popoverViewController presentPopoverFromRect:rect inView:self.view  permittedArrowDirections:0 animated:YES];

4
2017-07-07 07:08



Pour Swift 2.0 et iOS9 la solution est la suivante:

popoverViewController?.permittedArrowDirections = UIPopoverArrowDirection()

4
2018-01-28 11:36



Cela fonctionne bien pour moi.

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

Profitez de codage.


3
2017-07-10 09:52



Non, il n'y a pas UIPopoverArrowDirectionNone option, et UIPopoverArrowDirectionUnknown jette une exception je pense que si vous essayez de l'utiliser pour présenter.

Au lieu d'un contrôleur de popover, vous pouvez appeler presentModalViewController:animated: et définir le contrôleur que vous présentez pour avoir un style de présentation modal de UIModalPresentationFormSheet ou peut-être UIModalPresentationPageSheet. Ce sont des écrans popup plus traditionnels que les popovers.


2
2017-08-04 18:38



Dans mon cas pour les développeurs rapides

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);

2
2018-04-14 11:18



Essaye celui-là

[popOverController presentPopoverFromRect:CGRectMake(0, 0, 30, 40) inView:popOverContentView permittedArrowDirections:0 animated:NO];

1
2017-12-03 11:30



N'utilisez pas les Popovers si vous ne souhaitez pas afficher les flèches. Présentez votre contrôleur de vue en tant que modal et utilisez plutôt une feuille UIModalPresentationFormSheet.

Exemple:

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MyStoryBoard" bundle:nil];
UIViewController* viewController = [sb instantiateViewControllerWithIdentifier:@"myViewController"];
viewController.modalPresentationStyle = UIModalPresentationFormSheet;
[presenterViewController presentViewController: viewController animated:YES completion:^{

}];

1
2017-07-14 16:10