Я работал над созданием UIAlertView в Swift, но по какой-то причине я не могу правильно понять утверждение, потому что я получаю эту ошибку:
Не удалось найти перегрузку для 'init', который принимает предоставленные аргументы
Вот как я это написал:
let button2Alert: UIAlertView = UIAlertView(title: "Title", message: "message",
delegate: self, cancelButtonTitle: "OK", otherButtonTitles: nil)
Затем для вызова я использую:
button2Alert.show()
На данный момент это сбой, и я просто не могу понять синтаксис правильно.
ios
swift
cocoa-touch
uialertview
uialertcontroller
BlueBear
источник
источник
UIAlertView
иUIActionSheet
был замененUIAlertController
в iOS 8, вы смотрели на это?self
принадлежит, принимает протоколUIAlertViewDelegate
(рекомендуемый способ сделать это в Swift - с расширением).Ответы:
Из
UIAlertView
класса:На iOS 8 вы можете сделать это:
Теперь
UIAlertController
это единственный класс для создания и взаимодействия с тем, что мы знали какUIAlertView
с иUIActionSheet
с на iOS 8.Изменить: для обработки действий:
Редактировать для Swift 3:
Редактировать для Swift 4.x:
источник
UIAlertView
классу, и комментарий находится прямо над объявлением класса..Default
?Одна кнопка
Две кнопки
Три кнопки
Обработка нажатий кнопок
Это
handler
былоnil
в приведенных выше примерах. Вы можете заменитьnil
с закрытием , чтобы сделать что - то , когда пользователь нажимает кнопку. Например:Ноты
UIAlertAction.Style
типы. Они все могут быть.default
.источник
Вы можете создать UIAlert, используя стандартный конструктор, но «устаревший», похоже, не работает:
источник
В Swift 4.2 и Xcode 10
Способ 1:
ПРОСТОЕ ПРЕДУПРЕЖДЕНИЕ
Способ 2:
ALERT с общим классом
Если вы хотите стиль общего класса (пишите один раз, используйте каждый раз)
Теперь вызывайте оповещения вот так в каждой посуде
Способ 3:
НАСТОЯЩИЙ АЛЕРТ ВЕРХ ВСЕХ ОКОН
Если вы хотите создать оповещение поверх всех просмотров, используйте этот код
Вызов функции
Способ 4:
Оповещение с расширением
Теперь звоните вот так
Способ 5:
ALERT с текстовыми полями
Если вы хотите добавить текстовые поля для оповещения.
Способ 6:
Оповещение в SharedClass с расширением
Теперь звоните прямо так
Способ 7:
Оповещение без общего класса с расширением в отдельном классе для предупреждения.
Создайте один новый класс Swift и
import UIKit
. Скопируйте и вставьте код ниже.Теперь вызывайте функцию оповещения таким образом во всех ваших классах (одна строка).
Как это....
источник
if timeInterval != 0 { if #available(iOS 10.0, *) { Timer.scheduledTimer(withTimeInterval: timeInterval, repeats: false, block: { _ in alert.dismiss(animated: true, completion: nil) }) } else { // Fallback on earlier versions } }
Щелчок Представления
Готово с двумя кнопками ОК и Отмена
источник
Если вы ориентируетесь на iOS 7 и 8, вам нужно что-то подобное, чтобы убедиться, что вы используете правильный метод для каждой версии, потому что
UIAlertView
устарел в iOS 8, ноUIAlertController
недоступен в iOS 7:источник
UIAlertView
пока не прекратите поддержку iOS 7. Apple не отклонит ваше приложение за это.С помощью расширений протокола Swift 2 вы можете создать протокол, который обеспечивает реализацию по умолчанию для ваших контроллеров представления:
ShowsAlert.swift
ViewController.swift
источник
Показать UIAlertView на быстром языке: -
Протокол UIAlertViewDelegate
Показать UIAlertViewController на быстром языке: -
источник
Просто не предоставляйте другиеButtonTitles в конструкторе.
Но я согласен с Оскаром, этот класс устарел в iOS 8, поэтому UIAlertView не будет использоваться, если вы работаете только с iOS 8. В противном случае приведенный выше код будет работать.
источник
Я нашел это,
не очень хорошо, но это работает :)
Обновить:
но я нашел в заголовочном файле как:
кто-то может объяснить это.
источник
Я думаю, что для SWIFT4 расширение
UIViewController
и создание многоразового элемента управления подтверждением является наиболее элегантным способом.Вы можете расширить
UIViewController
как ниже:Тогда вы можете использовать его в любое время:
источник
источник
У меня есть еще один трюк. Предположим, у вас есть 5 классов, в которых должно быть применено предупреждение о выходе. Попробуйте с быстрым расширением класса.
Файл - Новый - Swift класс - Назовите его.
Добавьте следующее:
Реализация с использованием: self.makeLogOutAlert (). Надеюсь, поможет.
источник
Я создал одноэлементный класс, чтобы его было удобно использовать из любого места в вашем приложении: https://github.com/Swinny1989/Swift-Popups
Затем вы можете создать всплывающее окно с несколькими кнопками, например:
или всплывающее окно с одной кнопкой, как это:
источник
Свифт 3
Ниже приведен простой пример того, как создать простое оповещение с помощью одной кнопки с помощью Swift 3.
В вышеприведенном примере обратный вызов дескриптора действия был опущен, поскольку поведение по умолчанию для представления предупреждений с одной кнопкой должно исчезать при нажатии кнопки.
Вот как можно создать другое действие, которое можно добавить к предупреждению с помощью «alert.addAction (action)». Различные стили: .default, .destructive и .cancel.
источник
Я получил следующий
UIAlertView
код инициализации для компиляции без ошибок (я думаю, что последняя, varadic часть сложна, возможно). Но я должен был убедиться, что классself
(который я передаю как делегат) принимаетUIAlertViewDelegate
протокол для устранения ошибок компиляции:Кстати, это ошибка, которую я получаю (по состоянию на Xcode 6.4):
Как уже упоминалось, вам следует перейти на UIAlertController, если вы можете использовать iOS 8.x +. Для поддержки iOS 7 используйте приведенный выше код (iOS 6 не поддерживается Swift).
источник
источник
Вы можете использовать это простое расширение с n количеством кнопок и связанных действий swift4 и выше
Вы можете использовать это как,
источник
Причина, по которой это не работает, потому что какое-то значение, которое вы передали функции, неверно. Swift не любит Objective-C, вы можете указывать nil для аргументов типа класса без каких-либо ограничений (может быть). Аргумент otherButtonTitles определяется как необязательный, тип которого не имеет (?) В конце. поэтому вы должны передать ей конкретное значение.
источник
Попробуй это
источник
Используйте этот код для отображения предупреждений
Справка: быстрое оповещение с помощью UIAlertController
источник
в Xcode 9
источник
SWIFT 4: Просто создайте расширение для UIViewController следующим образом:
Теперь в вашем ViewController напрямую вызовите вышеуказанную функцию, как если бы они были предоставлены UIViewController.
источник
попробуй это. Поместите сильфон в кнопку.
источник
Вот забавный пример в Swift:
источник
Вот довольно простая функция AlertView в Swift:
Вы должны передать сообщение в виде строки, где вы используете эту функцию.
источник
Старый путь: UIAlertView
Новый путь: UIAlertController
источник
на IOS 9 вы можете сделать это
источник
// Общий класс для UIAlertView
Использование: -
источник
источник