Üzerinde bir "Tamam" düğmesi bulunan basit bir UIAlertView yapmak için kullanabileceğim bazı başlangıç kodu nedir?
Üzerinde bir "Tamam" düğmesi bulunan basit bir UIAlertView yapmak için kullanabileceğim bazı başlangıç kodu nedir?
Yanıtlar:
Uyarının gösterilmesini istediğinizde şunu yapın:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"ROFL"
message:@"Dee dee doo doo."
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
// If you're not using ARC, you will need to release the alert view.
// [alert release];
Düğme tıklandığında bir şey yapmak istiyorsanız, şu delege yöntemini uygulayın:
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
// the user clicked OK
if (buttonIndex == 0) {
// do something here...
}
}
Ve temsilcinizin UIAlertViewDelegate
protokole uyduğundan emin olun :
@interface YourViewController : UIViewController <UIAlertViewDelegate>
Diğer yanıtlar zaten iOS 7 ve daha eski sürümler için bilgi sağlamaktadır, ancak UIAlertView
iOS 8'de kullanımdan kaldırılmıştır .
İOS 8+ kullanmalısınız UIAlertController
. Hem UIAlertView
ve hem de yerine geçer UIActionSheet
. Belgeler: UIAlertController Sınıf Referansı . Ve NSHipster hakkında güzel bir makale .
Basit bir Uyarı Görünümü oluşturmak için aşağıdakileri yapabilirsiniz:
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Title"
message:@"Message"
preferredStyle:UIAlertControllerStyleAlert];
//We add buttons to the alert controller by creating UIAlertActions:
UIAlertAction *actionOk = [UIAlertAction actionWithTitle:@"Ok"
style:UIAlertActionStyleDefault
handler:nil]; //You can use a block here to handle a press on this button
[alertController addAction:actionOk];
[self presentViewController:alertController animated:YES completion:nil];
Hızlı 3/4/5:
let alertController = UIAlertController(title: "Title", message: "Message", preferredStyle: .alert)
//We add buttons to the alert controller by creating UIAlertActions:
let actionOk = UIAlertAction(title: "OK",
style: .default,
handler: nil) //You can use a block here to handle a press on this button
alertController.addAction(actionOk)
self.present(alertController, animated: true, completion: nil)
İOS 8'de eklendiğinden, bu kodun iOS 7 ve daha eski sürümlerde çalışmayacağını unutmayın. Bu yüzden, ne yazık ki, şimdilik böyle sürüm kontrolleri kullanmamız gerekiyor:
NSString *alertTitle = @"Title";
NSString *alertMessage = @"Message";
NSString *alertOkButtonText = @"Ok";
if (@available(iOS 8, *)) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:alertTitle
message:alertMessage
delegate:nil
cancelButtonTitle:nil
otherButtonTitles:alertOkButtonText, nil];
[alertView show];
}
else {
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:alertTitle
message:alertMessage
preferredStyle:UIAlertControllerStyleAlert];
//We add buttons to the alert controller by creating UIAlertActions:
UIAlertAction *actionOk = [UIAlertAction actionWithTitle:alertOkButtonText
style:UIAlertActionStyleDefault
handler:nil]; //You can use a block here to handle a press on this button
[alertController addAction:actionOk];
[self presentViewController:alertController animated:YES completion:nil];
}
Hızlı 3/4/5:
let alertTitle = "Title"
let alertMessage = "Message"
let alertOkButtonText = "Ok"
if #available(iOS 8, *) {
let alertController = UIAlertController(title: alertTitle, message: alertMessage, preferredStyle: .alert)
//We add buttons to the alert controller by creating UIAlertActions:
let actionOk = UIAlertAction(title: alertOkButtonText,
style: .default,
handler: nil) //You can use a block here to handle a press on this button
alertController.addAction(actionOk)
self.present(alertController, animated: true, completion: nil)
}
else {
let alertView = UIAlertView(title: alertTitle, message: alertMessage, delegate: nil, cancelButtonTitle: nil, otherButtonTitles: alertOkButtonText)
alertView.show()
}
UPD: Swift 5 için güncellendi. Güncel olmayan sınıf varlığı kontrolü, Obj-C'de uygunluk kontrolü ile değiştirildi.
UIAlertView, iOS 8'de kullanımdan kaldırılmıştır. Bu nedenle, iOS 8 ve üzeri sürümlerde bir uyarı oluşturmak için UIAlertController'ı kullanmanız önerilir:
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Title" message:@"Alert Message" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){
// Enter code here
}];
[alert addAction:defaultAction];
// Present action where needed
[self presentViewController:alert animated:YES completion:nil];
Ben bunu böyle hayata geçirdim.
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Title"
message:@"Message"
delegate:nil //or self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert autorelease];
UIAlertView *myAlert = [[UIAlertView alloc]
initWithTitle:@"Title"
message:@"Message"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Ok",nil];
[myAlert show];
İşte UIAlert'i kapatmak için yalnızca bir düğme, bir 'tamam' olan eksiksiz bir yöntem:
- (void) myAlert: (NSString*)errorMessage
{
UIAlertView *myAlert = [[UIAlertView alloc]
initWithTitle:errorMessage
message:@""
delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"ok", nil];
myAlert.cancelButtonIndex = -1;
[myAlert setTag:1000];
[myAlert show];
}
Dizi verileriyle basit uyarı:
NSString *name = [[YourArray objectAtIndex:indexPath.row ]valueForKey:@"Name"];
NSString *msg = [[YourArray objectAtIndex:indexPath.row ]valueForKey:@"message"];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:name
message:msg
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];