7 ответов:
Ага, а
UIAlertViewЭто, вероятно, то, что вы ищете. Вот пример: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];если вы хотите сделать что-то более причудливое, скажем, отобразить пользовательский интерфейс в вашем
UIAlertView, вы можете подклассUIAlertViewи положить в пользовательских компонентов пользовательского интерфейса вinitметод. Если вы хотите ответить на нажатие кнопки послеUIAlertViewпоявляется, Вы можете установитьdelegateвыше и реализовать- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndexметод.вы также можете посмотреть на
UIActionSheet.
разные люди, которые приходят к этому вопросу, означают разные вещи всплывающим окном. Я настоятельно рекомендую прочитать Временные Представления документация. Мой ответ в основном представляет собой резюме этой и другой связанной с ней документации.
предупреждение (покажите мне пример)
предупреждения отображение заголовка и дополнительного сообщения. Пользователь должен подтвердить это (предупреждение одной кнопки) или сделать простой выбор (две кнопки оповещения), прежде чем идти дальше. Вы создаете оповещение с помощью
UIAlertController.стоит процитировать предупреждение и Совет документации о создании ненужных предупреждений.
Примечания:
- см. также Alert Views, но начиная с iOS 8 . Вы должны использовать
UIAlertControllerдля создания предупреждений сейчас.- iOS Основы: UIAlertView и UIAlertController (учебник)
Лист Действий (покажите мне пример)
Action Sheets дайте пользователю список вариантов. Они появляются либо в нижней части экрана, либо в всплывающем окне в зависимости от размера и ориентации устройства. Как и в случае с предупреждениями, a
UIAlertControllerиспользуется для создания листа действий. До iOS 8,UIActionSheetбыл использован, но теперь элемент документация говорит:важно:
UIActionSheetявляется устаревшим в iOS 8. (Обратите внимание, чтоUIActionSheetDelegateтакже не рекомендуется.) Для создания и управления таблицами действий в iOS 8 и более поздних версиях вместо этого используйтеUIAlertControllerСpreferredStyleнаUIAlertControllerStyleActionSheet.Модальное Представление (покажите мне пример)
A модал посмотреть сдержанный вид, который имеет все необходимое для выполнения задачи. Он может занимать или не занимать весь экран. Чтобы создать модальное представление, используйте
UIPresentationControllerС Модальные Стили Презентации.см. также
Popover (покажите мне пример)
A Popover это вид, который появляется, когда пользователь нажимает на что-то и исчезает при нажатии на него. Он имеет стрелку, показывающую элемент управления или место, откуда был сделан кран. Содержимое может быть почти все, что вы можете поместить в контроллер вида. Вы делаете поповер с
UIPopoverPresentationController. (До iOS 8,UIPopoverControllerрекомендуемый метод.)в прошлом popovers были доступны только на iPad, но начиная с iOS 8 вы также можете получить их на iPhone (см. здесь,здесь и здесь).
см. также
уведомления
уведомления звуки/вибрации, предупреждения / баннеры или значки, которые уведомляют пользователя о чем-то, даже если приложение не работает на переднем плане.
см. также
- руководство по программированию локальных и удаленных уведомлений
- простые, интерактивные уведомления в iOS 8
примечание о Android тосты
In Андроид тост - это короткое сообщение, которое отображается на экране в течение короткого промежутка времени и затем автоматически исчезает, не прерывая взаимодействия пользователя с приложением.
люди, исходящие из фона Android, хотят знать, что такое версия тоста iOS. Некоторые примеры этих вопросов он может найти здесь,здесь,здесь и здесь. Ответ таков нет эквивалент тоста в iOS. Различные обходные пути, которые были представлены включают в себя:
- сделайте свой собственный с подклассом
UIView- импорт стороннего проекта, который имитирует тост
- используйте предупреждение без кнопок с таймером
тем не менее, мой совет-придерживаться стандартных параметров пользовательского интерфейса, которые уже поставляются с iOS. Не пытайтесь сделать ваше приложение выглядеть и вести себя точно так же, как и версии Android. Думать о как переупаковать его так, чтобы он выглядел и чувствовал себя как приложение iOS.
С момента выпуска iOS 8 UIAlertView теперь устарел. Теперь вы будете использовать UIAlertController.
вот пример, как это выглядит в 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 }Как вы можете видеть, API позволяет нам реализовывать обратные вызовы как действия, так и когда мы представляем предупреждение, что довольно удобно!
обновлено для iOS 8.0
начиная с iOS 8.0, вам нужно будет использовать UIAlertController следующим образом:
-(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]; }где self в моем примере является UIViewController, который реализует метод "presentViewController" для всплывающего окна.
Дэвид
Для Swift 3 & Swift 4:
поскольку UIAlertView устарел, есть хороший способ для отображения оповещения на 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 wants here }) alertController.addAction(defaultAction) self.present(alertController, animated: true, completion: nil)удалено :
это версия swift, вдохновленная проверенным ответом:
Display 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()добавьте делегат в контроллер вида:
class AgendaViewController: UIViewController, UIAlertViewDelegateкогда пользователь нажимает на кнопку, этот код будет выполняться :
func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) { }
хотя я уже написал обзор из различных видов всплывающих окон, большинство людей просто нужно предупреждение.
как реализовать всплывающее диалоговое окно
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) } }мой более полный ответ здесь.
вот версия C# в Xamarin.прошивкой
var alert = new UIAlertView("Title - Hey!", "Message - Hello iOS!", null, "Ok"); alert.Show();









Comments