Vorrei impedire allo UIAlertController
di chiudere.Previene UIAlertController per respingere
Ho un UIAlertAction
che aggiunge semplicemente una stringa a UIAlertTextField, tuttavia, dopo averlo toccato, chiude il controller di visualizzazione [indesiderato]. Ho provato ad aggiungere una NSNotification con risultati indesiderati.
UIAlertAction *pasteMessage = [UIAlertAction actionWithTitle:@"Paste Message" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
UITextField *textField = alertC.textFields.firstObject;
textField.text = [textField.text stringByAppendingString:[NSString stringWithFormat:@"%@", copiedString]];
}];
Ho anche provato a installare no a pasteMessage da:
[alertC canPerformAction:@selector(dismissViewControllerAnimated:completion:) withSender:pasteMessage];
-(void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion {
UIAlertController *alertController = (UIAlertController *)self.presentedViewController;
UIAlertAction *paste = alertController.actions.firstObject;
if (paste) {
flag = NO;
} else {
flag = YES;
}
}
Modifica, non sto cercando di impedire le intercettazioni delle UIAlertAction
sto cercando di evitare che il UIAlertController
da respingere quando si tocca su detta azione. L'azione può essere abilitata/disabilitata, ma il mio obiettivo è semplicemente incollare il messaggio copiato nello UITextField
premendo un'azione (da qui il motivo per cui non voglio che venga ignorato)
Mi rendo anche conto dell'impostazione di BOOL a dismissViewControllerAnimated:
imposta semplicemente a non animare il congedo dei controller di visualizzazione, non voglio che implichi che fosse per fermare il processo di licenziamento effettivo. Semplicemente offrendo le cose che ho provato in relazione al mio obiettivo. Ho anche provato presentando una nuova UIAlertController
quando si seleziona pasteMessage auto-popolare la nuova UIAlertControllers
textField con il messaggio copiato, funziona, ma mi sento come se fosse troppo hacky per quello che potrebbe essere fatto.
possibile duplicato di [Impedisci il licenziamento di UIAlertController] (http://stackoverflow.com/questions/25628000/prevent-dismissal-of-uialertcontroller) –
Grazie @LyndseyScott questa non è una vera soluzione alla mia domanda. Questo impedisce semplicemente che un pulsante sia abilitato in base al campo di testo che contiene del testo: ecco la loro soluzione: '= (tf.text! =" ")' Che disabilita semplicemente il pulsante dal permettere che la vista venga ignorata _eventualmente_ – soulshined
Ma penso la parte più pertinente di tale risposta è la selezione di un 'UIAlertAction' * che * eliminerà il tuo avviso. Se vuoi qualche altro comportamento, prova a creare la tua vista personalizzata. –