2015-04-16 2 views
11

Как показать предупреждение на часах яблока. Есть ли альтернатива, чтобы показывать предупреждения в Apple Watch, потому что я проверил, и UIAlertView не работает на Apple Watch.Как показать оповещение на Apple Watch

+0

Обновлен мой ответ. С watchOS2 я считаю, что у вас есть лучшее решение для чего вы хотели :) –

ответ

13

С watchOS2

С watchOS2 вы можете использовать WKAlertAction метод:

+ (instancetype nonnull)actionWithTitle:(NSString * nonnull)title 
           style:(WKAlertActionStyle)style 
           handler:(WKAlertActionHandler nonnull)handler 

С watchOS1

Если вы не против потери функции из UIAlertView видения содержание позади, вы можете:

1 - Создание ErrorInterfaceController (с кнопкой ОК или без него)

enter image description here

2 - Установить идентификатор "ErrorInterfaceController"

enter image description here

3 - Представьте, что ошибка с:

[self presentControllerWithName:@"ErrorInterfaceController" 
         context:@{@"title" : @"yourTitle", 
            @"text" : @"yourText"}]; 

4 - В вашем ErrorInterfaceController.m вы можете установить заголовок и текст с помощью co NTEXT.

Обратите внимание, что ваш ErrorInterfaceController может иметь заголовок, который пуст, а кнопка «ok» может отменить его, или вы можете оставить способ по умолчанию «Готово».

Это простейшее решение для подачи сообщения.

Если вам нужно что-то более сложное, вам нужно помнить, что WatchKit не имеет индекса z, и вы не можете динамически добавлять элементы по коду. Поэтому вам нужно иметь решение, которое использует UIImages, отображаемое в вашем приложении, и отправляет их в WatchKit.

+0

PLZ объяснить в deep.where поставить код? что делать в контроллере для передачи контекста? –

+0

Завершил ответ с некоторыми изображениями. Идея в основном определяет новый контроллер интерфейса, который отвечает за представление ошибки, а затем просто представляет ее. –

3

Другой вариант - разместить свой опознавательный интерфейс в группе и показать/скрыть его по мере необходимости. В зависимости от дизайна вашего приложения это может работать очень хорошо. Я делаю что-то подобное для показа пользовательского интерфейса загрузки.

6

Для 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 ]]; 
4

В 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"]) 
0

Обновление для 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]) 

Надеется, что это помогает !!!

 Смежные вопросы

  • Нет связанных вопросов^_^