ventana una transparente imagen hacer flotante emergente ejemplo dialogo como clic ios ipad uipopovercontroller uiactionsheet uialertcontroller

ios - una - ventana emergente laravel



UIPopover ¿Cómo hago una ventana emergente con botones como este? (2)

Este es un UIActionSheet . En el iPhone, se anima desde la parte inferior. En el iPad aparece en una ventana emergente.

Suponiendo que esté haciendo esto presionando un botón:

UIActionSheet * actionSheet = [[UIActionSheet alloc] initWithTitle: nil delegate: self cancelButtonTitle: nil destructiveButtonTitle: nil otherButtonTitles: @"Take Photo", @"Choose Existing Photo", nil]; [actionSheet showFromRect: button.frame inView: button.superview animated: YES];

En iOS8 +, debes usar la nueva clase UIAlertController :

UIAlertController * alertController = [UIAlertController alertControllerWithTitle: nil message: nil preferredStyle: UIAlertControllerStyleActionSheet]; [alertController addAction: [UIAlertAction actionWithTitle: @"Take Photo" style: UIAlertActionStyleDefault handler:^(UIAlertAction *action) { // Handle Take Photo here }]]; [alertController addAction: [UIAlertAction actionWithTitle: @"Choose Existing Photo" style: UIAlertActionStyleDefault handler:^(UIAlertAction *action) { // Handle Choose Existing Photo here }]]; alertController.modalPresentationStyle = UIModalPresentationPopover; UIPopoverPresentationController * popover = alertController.popoverPresentationController; popover.permittedArrowDirections = UIPopoverArrowDirectionUp; popover.sourceView = sender; popover.sourceRect = sender.bounds; [self presentViewController: alertController animated: YES completion: nil];

o en Swift

let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .ActionSheet) alertController.addAction(UIAlertAction(title: "Take Photo", style: .Default, handler: { alertAction in // Handle Take Photo here })) alertController.addAction(UIAlertAction(title: "Choose Existing Photo", style: .Default, handler: { alertAction in // Handle Choose Existing Photo })) alertController.modalPresentationStyle = .Popover let popover = alertController.popoverPresentationController! popover.permittedArrowDirections = .Up popover.sourceView = sender popover.sourceRect = sender.bounds presentViewController(alertController, animated: true, completion: nil)

Me pregunto cómo puedo crear una ventana emergente con botones como este.

RESPONDER:

UIActionSheet * actionSheet = [[UIActionSheet alloc] initWithTitle: nil delegate: self cancelButtonTitle: nil destructiveButtonTitle: nil otherButtonTitles: @"Take Photo", @"Choose Existing Photo", nil]; [actionSheet showFromRect: button.frame inView: button.superview animated: YES];

En otro lugar en tu clase de objeto delegado ...

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { if (buttonIndex == 0) { // take photo... } else if (buttonIndex == 1) { // choose existing photo... } }


Similar a las otras respuestas, pero esto es muy fácil de implementar en comparación.

Haga que su clase use el UIActionSheetDelegate.

Ejemplo:

@interface ExampleViewController : UIViewController <UIActionSheetDelegate>

Luego agregue a su ExampleViewController.mm/m

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { //Get the name of the current pressed button NSString *buttonTitle = [actionSheet buttonTitleAtIndex:buttonIndex]; if ([buttonTitle isEqualToString:@"Remove"]) { NSLog(@"Remove this actionSheet"); } if ([buttonTitle isEqualToString:@"Button 1"]) { NSLog(@"Button 1 pressed"); } if ([buttonTitle isEqualToString:@"Button 2"]) { NSLog(@"Button 2 pressed"); } if ([buttonTitle isEqualToString:@"Button 3"]) { NSLog(@"Button 3 pressed"); } if ([buttonTitle isEqualToString:@"Cancel"]) { NSLog(@"Cancel clicked (anywhere away from it)"); } }

Ahora, en un evento de botón presionado o cuando / cuando desee que aparezca un mensaje emergente, haga lo siguiente:

- (IBAction)aButtonPressed:(id)sender { NSString *actionSheetTitle = @"Action Sheet"; // Title NSString *destroyTitle = @"Destroy"; // Button titles NSString *button1 = @"Button 1"; NSString *button2 = @"Button 2"; NSString *button3 = @"Button 3"; NSString *cancelTitle = @"Cancel"; UIActionSheet *actionSheet = [[UIActionSheet alloc]                               initWithTitle:actionSheetTitle                               delegate:self                                cancelButtonTitle:cancelTitle                              destructiveButtonTitle:destroyTitle                               otherButtonTitles:button1, button2, button3, nil]; [actionSheet showInView:self.view]; }

Y más información sobre este @: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIActionSheet_Class/Reference/Reference.html