如何在Apple手表上显示警报。是否有任何替代方案可以在Apple Watch中显示警报,因为我检查过并且UIAlertView无法在Apple Watch上运行。
答案 0 :(得分:13)
使用watchOS2
使用watchOS2,您可以使用WKAlertAction方法:
+ (instancetype nonnull)actionWithTitle:(NSString * nonnull)title
style:(WKAlertActionStyle)style
handler:(WKAlertActionHandler nonnull)handler
使用watchOS1
如果您不介意失去看到背后内容的UIAlertView功能,您可以:
1 - 创建一个ErrorInterfaceController(带或不带ok按钮)
2 - 将标识符设置为" ErrorInterfaceController"
3 - 出现以下错误:
[self presentControllerWithName:@"ErrorInterfaceController"
context:@{@"title" : @"yourTitle",
@"text" : @"yourText"}];
4 - 在ErrorInterfaceController.m中,您可以使用上下文设置标题和文本。
请注意,你的ErrorInterfaceController可以有一个空的标题,ok按钮可以解除它,或者你可以使用默认的"完成"
。这是提供信息的最简单的解决方案。
如果您想要更复杂的东西,您需要记住,WatchKit没有z-index,您无法通过代码动态添加元素。因此,您需要一个使用在应用扩展中呈现的UIImages并将它们发送到WatchKit的解决方案。
答案 1 :(得分: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 ]];
答案 2 :(得分:5)
在watchOS 2中
<强> 目标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
}
]];
<强> 夫特 强>
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中
你应该制作第二个接口控制器,正如蒂亚戈所说,然后从第一个出现第二个:
<强> 目标C 强>
[self presentControllerWithName:@"ErrorInterfaceController"
context:@{@"title" : @"yourTitle",
@"text" : @"yourText"}];
<强> 夫特 强>
self.presentController(name: "ErrorInterfaceController", context:["title":"yourTitle" , "text":"yourText"])
答案 3 :(得分:4)
另一种选择是将警报UI放在一个组中,并根据需要显示/隐藏它。根据您的应用程序的设计,这可以很好地工作。我做了类似的事情来显示加载UI。
答案 4 :(得分:4)
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])
希望它有所帮助!!!