Как показать предупреждение на часах яблока. Есть ли альтернатива, чтобы показывать предупреждения в Apple Watch, потому что я проверил, и UIAlertView не работает на Apple Watch.Как показать оповещение на Apple Watch
ответ
С watchOS2
С watchOS2 вы можете использовать WKAlertAction метод:
+ (instancetype nonnull)actionWithTitle:(NSString * nonnull)title
style:(WKAlertActionStyle)style
handler:(WKAlertActionHandler nonnull)handler
С watchOS1
Если вы не против потери функции из UIAlertView видения содержание позади, вы можете:
1 - Создание ErrorInterfaceController (с кнопкой ОК или без него)
2 - Установить идентификатор "ErrorInterfaceController"
3 - Представьте, что ошибка с:
[self presentControllerWithName:@"ErrorInterfaceController"
context:@{@"title" : @"yourTitle",
@"text" : @"yourText"}];
4 - В вашем ErrorInterfaceController.m вы можете установить заголовок и текст с помощью co NTEXT.
Обратите внимание, что ваш ErrorInterfaceController может иметь заголовок, который пуст, а кнопка «ok» может отменить его, или вы можете оставить способ по умолчанию «Готово».
Это простейшее решение для подачи сообщения.
Если вам нужно что-то более сложное, вам нужно помнить, что WatchKit не имеет индекса z, и вы не можете динамически добавлять элементы по коду. Поэтому вам нужно иметь решение, которое использует UIImages, отображаемое в вашем приложении, и отправляет их в WatchKit.
PLZ объяснить в deep.where поставить код? что делать в контроллере для передачи контекста? –
Завершил ответ с некоторыми изображениями. Идея в основном определяет новый контроллер интерфейса, который отвечает за представление ошибки, а затем просто представляет ее. –
Другой вариант - разместить свой опознавательный интерфейс в группе и показать/скрыть его по мере необходимости. В зависимости от дизайна вашего приложения это может работать очень хорошо. Я делаю что-то подобное для показа пользовательского интерфейса загрузки.
Для watchOS 2, вот пример:
WKAlertAction *action =
[WKAlertAction actionWithTitle:@"OK"
style:WKAlertActionStyleDefault
handler:^{
// do something after OK is clicked
}];
NSString *title = @"Oops!";
NSString *message = @"Here comes the error message";
[self.interfaceController
presentAlertControllerWithTitle:title
message:message
preferredStyle:WKAlertControllerStyleAlert
actions:@[ action ]];
В watchOS 2
Objective-C
NSString *titleOfAlert = @"Something Happened Wrong";
NSString *messageOfAlert = @"Error Message Here";
[self.interfaceController presentAlertControllerWithTitle: titleOfAlert
message: messageOfAlert
preferredStyle:
WKAlertControllerStyleAlert
actions:@[
[WKAlertAction actionWithTitle: @"OK"
style: WKAlertActionStyleDefault
handler: ^{
//something after clicking OK
}
]];
Swift
let titleOfAlert = "Something Happened Wrong"
let messageOfAlert = "Error Message Here"
self.interfaceController.presentAlertControllerWithTitle(titleOfAlert, message: messageOfAlert, preferredStyle: .Alert, actions: [WKAlertAction(title: "OK", style: .Default){
//something after clicking OK
}])
В watchOS 1
Вы должны сделать второй контроллер интерфейса, как говорит Тьягу, а затем представить вторую из первой:
Objective-C
[self presentControllerWithName:@"ErrorInterfaceController"
context:@{@"title" : @"yourTitle",
@"text" : @"yourText"}];
Swift
self.presentController(name: "ErrorInterfaceController", context:["title":"yourTitle" , "text":"yourText"])
Обновление для Swift 3.0 - В watchOS 3.0
let action = WKAlertAction(title: "Decline", style: WKAlertActionStyle.default) {
print("Ok")
}
presentAlert(withTitle: "Message", message: "Please select value. Swipe right to change it.", preferredStyle: WKAlertControllerStyle.alert, actions:[action])
Надеется, что это помогает !!!
Обновлен мой ответ. С watchOS2 я считаю, что у вас есть лучшее решение для чего вы хотели :) –