После вычисления я хочу отобразить окно всплывающего окна или предупреждения, передающее сообщение пользователю. Кто-нибудь знает, где я могу найти дополнительную информацию об этом?
Как реализовать всплывающее диалоговое окно в iOS
Ответ 1
Yup, a 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
.
Ответ 2
Различные люди, которые приходят к этому вопросу, означают разные вещи всплывающим окном. Я настоятельно рекомендую прочитать документацию Temporary Views. Мой ответ в основном сводится к этой и другой связанной документации.
Alert (покажите мне пример)
Alerts отображает заголовок и необязательное сообщение. Пользователь должен подтвердить это (предупреждение с одной кнопкой) или сделать простой выбор (двухкнопочное предупреждение) перед продолжением. Вы создаете оповещение с помощью UIAlertController
.
Стоит процитировать предупреждение о документации и советы о создании ненужных предупреждений.
Примечания:
- См. также Alert Views, но запуск в iOS 8
UIAlertView
был устаревшим. Вы должны использоватьUIAlertController
для создания предупреждений. - Основы iOS: UIAlertView и UIAlertController (учебник)
Лист действий (покажите мне пример)
Таблицы действий предоставляют пользователю список вариантов. Они отображаются либо в нижней части экрана, либо в popover в зависимости от размера и ориентации устройства. Как и в случае с предупреждениями, a UIAlertController
используется для создания листа действий. Перед iOS 8 использовался UIActionSheet
, но теперь documentation говорит:
Важно:
UIActionSheet
устарел в iOS 8. (Заметьте, чтоUIActionSheetDelegate
также устарел.) Чтобы создавать и управлять листами действий в iOS 8 и более поздних версиях, используйтеUIAlertController
сpreferredStyle
UIAlertControllerStyleActionSheet
.
Модальный просмотр (покажите мне пример)
A модальный вид - это автономный вид, в котором есть все необходимое для выполнения задачи. Он может или не может отображаться в полноэкранном режиме. Чтобы создать модальное представление, используйте UIPresentationController
с одним из Modal Стили презентации.
См. также
Popover (покажите мне пример)
A Popover - это представление, которое появляется, когда пользователь нажимает на что-то и исчезает при нажатии на него. Он имеет стрелку, показывающую элемент управления или местоположение, из которого был сделан кран. Содержимое может быть практически любым, что вы можете поместить в контроллер просмотра. Вы делаете popover с UIPopoverPresentationController
. (До iOS 8, UIPopoverController
был рекомендованным методом.)
В прошлом popovers были доступны только на iPad, но начиная с iOS 8 вы также можете получить их на iPhone (см. здесь, здесь, и здесь).
См. также
Уведомления
Уведомления - это звуки/вибрации, предупреждения/баннеры или значки, которые уведомляют пользователя о чем-то, даже когда приложение не работает на переднем плане,
См. также
- Руководство по программированию локального и удаленного уведомлений
- Простые интерактивные уведомления в iOS 8
Заметка об Android Toasts
В Android, Toastэто короткое сообщение, которое отображается на экране в течение короткого промежутка времени и затем автоматически исчезает, не нарушая взаимодействия пользователя с приложением.
Люди из Android-фона хотят знать, что такое iOS-версия Toast. Некоторые примеры этих вопросов можно найти здесь , здесь, здесь и здесь. Ответ в том, что нет эквивалента Toast в iOS. Различные обходные пути, которые были представлены, включают:
- Сделайте свой собственный с подклассом
UIView
- Импортировать сторонний проект, который имитирует Toast
- Используйте кнопку без значка с таймером
Однако, мой совет - придерживаться стандартных параметров пользовательского интерфейса, которые уже поставляются с iOS. Не пытайтесь заставить приложение выглядеть и вести себя точно так же, как версия Android. Подумайте о том, как переупаковать его, чтобы он выглядел и выглядел как приложение iOS.
Ответ 3
Начиная с выпуска 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 позволяет нам реализовывать обратные вызовы как для действия, так и для представления предупреждения, что весьма удобно!
Обновлено для 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
}
Ответ 4
Обновлено для 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];
}
Где сам в моем примере является UIViewController, который реализует метод "presentViewController" для всплывающего окна.
Дэвид
Ответ 5
Для Swift 3 и Swift 4:
Поскольку UIAlertView устарел, есть хороший способ для отображения Alert on 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)
Устаревший:
Это быстрая версия, вдохновленная проверенным ответом:
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) {
}
Ответ 6
Хотя я уже писал обзор различных видов всплывающих окон, большинству людей просто нужно оповещение.
Как реализовать всплывающее диалоговое окно
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)
}
}
Мой более полный ответ здесь.
Ответ 7
Вот версия С# в Xamarin.iOS
var alert = new UIAlertView("Title - Hey!", "Message - Hello iOS!", null, "Ok");
alert.Show();