-
Notifications
You must be signed in to change notification settings - Fork 5
Modal
+ (instancetype)showModalWithViewController:(UIViewController *)innerViewController title:(NSString *)title actionTitle:(NSString *)actionTitle actionBlock:(void (^)())actionBlock secondaryActionTitle:(NSString *)secondaryTitle secondaryActionBlock:(void (^)())secondaryActionBlock dismissBlock:(void (^)())dismissBlock;
-
innerViewController: ViewController que se quiere mostrar en el modal
-
title: título del modal, si viene el nil el modal se presenta sin título
-
actionTitle: título del botón del modal
-
actionBlock: bloque a ejecutar cuando se presione el botón (si el actionTitle o el actionBlock son nil no se mostrará el botón)
-
secondaryTitle: título del botón secundario
-
secondaryActionBlock: bloque a ejecutar cuando se presione el botón secundario (si el secondaryTitle o el secondaryActionBlock son nil no se mostrará el botón secundario)
-
dismissBlock: Bloque a ejecutar cuando el modal desaparece.
Existen otras variantes del mismo método que permiten mostrar el modal pasándole menos parámetros. Se muestran alguno de ellos más adelante.
- (void)dismissModal;
Esto permite ocultar el modal programáticamente.
El view controller que se le envía al modal debe tener AUTOLAYOUT, sino no funcionará. A su vez,su ancho no puede estar fijo, debe tener las constraints necesarias para que el mismo se adapte a su vista padre.
Otra observación es que el blur de la vista del modal es estática. Esto significa que cualquier animación que se corra detrás de la vista del modal no se podrá ver.
[MLModal showModalWithViewController:[[ViewController alloc] init]];
[MLModal showModalWithViewController:[[ViewController alloc] init] title:@"Title"];;
[MLModal showModalWithViewController:[[ViewController alloc] init] title:@"Title" actionTitle:@"Button" actionBlock: ^{}];
[MLModal showModalWithViewController:[[ViewController alloc] init] title:@"Title" actionTitle:@"Button" actionBlock: ^{} secondaryActionTitle:@"Apply" secondaryActionBlock: ^{} dismissBlock:nil];