Odpowiedzi:
Tak, UIAlertViewprawdopodobnie jest to, czego szukasz. Oto przykład:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No network connection"
message:@"You must be connected to the internet to use this app."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
Jeśli chcesz zrobić coś bardziej fantazyjnego, powiedzmy, wyświetl w swoim interfejsie użytkownika niestandardowy interfejs użytkownika UIAlertView, możesz podklasę UIAlertViewi wstawić niestandardowe składniki interfejsu użytkownika w initmetodzie. Jeśli chcesz odpowiedzieć na naciśnięcie przycisku po UIAlertViewpojawieniu się znaku, możesz ustawić delegatepowyższe i zastosować - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndexmetodę.
Możesz także spojrzeć na UIActionSheet.
Różni ludzie, którzy przychodzą na to pytanie, oznaczają różne rzeczy za pomocą wyskakującego okienka. Bardzo polecam przeczytanie dokumentacji widoków tymczasowych . Moja odpowiedź jest w dużej mierze streszczeniem tej i innych powiązanych dokumentów.
Alerty wyświetlają tytuł i opcjonalny komunikat. Użytkownik musi to potwierdzić (alert za pomocą jednego przycisku) lub dokonać prostego wyboru (alert za pomocą jednego przycisku) przed kontynuowaniem. Tworzysz alert za pomocą UIAlertController.
Warto zacytować ostrzeżenia i porady dokumentacji dotyczące tworzenia niepotrzebnych alertów.
Uwagi:
UIAlertViewbył przestarzały. Powinieneś teraz użyć UIAlertControllerdo tworzenia alertów.Arkusze akcji dają użytkownikowi listę opcji do wyboru. Pojawiają się na dole ekranu lub w oknie pop-up, w zależności od wielkości i orientacji urządzenia. Podobnie jak w przypadku alertów, a UIAlertControllersłuży do tworzenia arkusza akcji. Przed iOS 8 UIActionSheetbył używany, ale teraz dokumentacja mówi:
Ważne:
UIActionSheetjest przestarzałe w iOS 8. (zauważ, żeUIActionSheetDelegatejest również przestarzała.) Do tworzenia i zarządzania arkusze działania w iOS 8 i później, zamiast korzystaćUIAlertControllerzpreferredStyleoUIAlertControllerStyleActionSheet.
Modalne widok jest samowystarczalny pogląd, że ma wszystko, co potrzebne do wykonania zadania. Może, ale nie musi zajmować całego ekranu. Aby utworzyć widok modalny, użyj UIPresentationControllerz jednym ze stylów prezentacji modalnej .
Zobacz też
Popover to widok, który pojawia się, gdy kranów użytkownika na coś i znika, gdy dotykając poza nim. Ma strzałkę pokazującą element sterujący lub lokalizację, z której wykonano dotknięcie. Treść może zawierać wszystko, co można umieścić w kontrolerze widoku. Robisz popover za pomocą UIPopoverPresentationController. (Przed iOS 8 UIPopoverControllerbyła zalecaną metodą).
W przeszłości pop-upy były dostępne tylko na iPadzie, ale poczynając od iOS 8, można je również uzyskać na iPhonie (patrz tutaj , tutaj i tutaj ).
Zobacz też
Powiadomienia to dźwięki / wibracje, alerty / banery lub znaczki, które powiadamiają użytkownika o czymś, nawet gdy aplikacja nie jest uruchomiona na pierwszym planie.
Zobacz też
W systemie Android Toast to krótki komunikat, który wyświetla się na ekranie przez krótki czas, a następnie znika automatycznie, nie zakłócając interakcji użytkownika z aplikacją.
Ludzie pochodzący z systemu Android chcą wiedzieć, co to jest wersja Toast na iOS. Niektóre przykłady tych pytań można znaleźć tutaj , tutaj , tutaj i tutaj . Odpowiedź jest taka, że w iOS nie ma odpowiednika Toast . Różne przedstawione obejścia obejmują:
UIViewJednak radzę trzymać się standardowych opcji interfejsu użytkownika, które są już dostarczane z iOS. Nie staraj się, aby Twoja aplikacja wyglądała i zachowywała się dokładnie tak samo jak wersja na Androida. Zastanów się, jak go ponownie zapakować, aby wyglądał i działał jak aplikacja na iOS.
Od wydania iOS 8 UIAlertViewjest teraz przestarzałe; UIAlertController jest zamiennikiem.
Oto próbka tego, jak to wygląda w Swift:
let alert = UIAlertController(title: "Hello!", message: "Message", preferredStyle: UIAlertControllerStyle.alert)
let alertAction = UIAlertAction(title: "OK!", style: UIAlertActionStyle.default)
{
(UIAlertAction) -> Void in
}
alert.addAction(alertAction)
present(alert, animated: true)
{
() -> Void in
}
Jak widać, interfejs API pozwala nam na implementację wywołań zwrotnych zarówno dla akcji, jak i kiedy prezentujemy alert, co jest całkiem przydatne!
Zaktualizowano dla Swift 4.2
let alert = UIAlertController(title: "Hello!", message: "Message", preferredStyle: UIAlertController.Style.alert)
let alertAction = UIAlertAction(title: "OK!", style: UIAlertAction.Style.default)
{
(UIAlertAction) -> Void in
}
alert.addAction(alertAction)
present(alert, animated: true)
{
() -> Void in
}
Zaktualizowano dla iOS 8.0
Od iOS 8.0 będziesz musiał używać UIAlertController w następujący sposób:
-(void)alertMessage:(NSString*)message
{
UIAlertController* alert = [UIAlertController
alertControllerWithTitle:@"Alert"
message:message
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* defaultAction = [UIAlertAction
actionWithTitle:@"OK" style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {}];
[alert addAction:defaultAction];
[self presentViewController:alert animated:YES completion:nil];
}
Gdzie self w moim przykładzie to UIViewController, który implementuje metodę „presentViewController” dla wyskakującego okienka.
David
W przypadku Swift 3 i Swift 4:
Ponieważ UIAlertView jest przestarzały, istnieje dobry sposób wyświetlania Alert na Swift 3
let alertController = UIAlertController(title: NSLocalizedString("No network connection",comment:""), message: NSLocalizedString("connected to the internet to use this app.",comment:""), preferredStyle: .alert)
let defaultAction = UIAlertAction(title: NSLocalizedString("Ok", comment: ""), style: .default, handler: { (pAlert) in
//Do whatever you want here
})
alertController.addAction(defaultAction)
self.present(alertController, animated: true, completion: nil)
Przestarzałe:
To jest szybka wersja zainspirowana sprawdzoną odpowiedzią:
Wyświetl AlertView:
let alert = UIAlertView(title: "No network connection",
message: "You must be connected to the internet to use this app.", delegate: nil, cancelButtonTitle: "Ok")
alert.delegate = self
alert.show()
Dodaj delegata do kontrolera widoku:
class AgendaViewController: UIViewController, UIAlertViewDelegate
Gdy użytkownik kliknie przycisk, ten kod zostanie wykonany:
func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
}
Chociaż już napisałem przegląd różnych rodzajów wyskakujących okienek, większość ludzi potrzebuje tylko alertu.
class ViewController: UIViewController {
@IBAction func showAlertButtonTapped(_ sender: UIButton) {
// create the alert
let alert = UIAlertController(title: "My Title", message: "This is my message.", preferredStyle: UIAlertController.Style.alert)
// add an action (button)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertAction.Style.default, handler: nil))
// show the alert
self.present(alert, animated: true, completion: nil)
}
}
Moja pełniejsza odpowiedź jest tutaj .
Oto wersja C # w Xamarin.iOS
var alert = new UIAlertView("Title - Hey!", "Message - Hello iOS!", null, "Ok");
alert.Show();