- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在开发一个最初为 iOS 6 编写的旧 iOS 应用程序,它有一些需要更改的 UIActionSheets,因此我一直在努力使用 UIAlertActions 将它们移至 UIAlertControllers。这在 iPad2 模拟器上运行得非常好,但是在 iPad Air(我唯一可以访问的 iPad)上测试时,我的 UIAlertAction 和 UIAlertController 在创建后直接变为 nil(在调试器中查看,它在创建时收到一个指针,但是一旦它执行下一行,它就会变为空)。这是一个代码示例:
//When hovering over the next line, alert has a pointer
UIAlertController* alert = [UIAlertController
alertControllerWithTitle:@"info"
message:@"testmessage"
preferredStyle:UIAlertControllerStyleActionSheet];
//alert pointer is now nil
//test pointer shows up
UIAlertAction* test= [UIAlertAction
actionWithTitle:@"I'm a Button"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action){
[alert dismissViewControllerAnimated: YES completion:nil];
}
];
//test pointer is nil, test2 pointer exists
UIAlertAction* test2 = [UIAlertAction
actionWithTitle:@"I'm a Button"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action){
[alert dismissViewControllerAnimated: YES completion:nil];
}
];
//test2 pointer is nil
[alert addAction:test];
[self presentViewController:alert animated:YES completion:nil]; //app crashes, because I'm trying to present a nil modal.
任何想法或帮助将不胜感激!
最佳答案
UIAlertController 适用于 iOS8 以上版本。 iOS8 之前使用 UIAlertView 和 UIActionSheet
您最好检查您的设备是否响应类(class),
if ([UIAlertController class]) {
// use UIAlertController for the action sheets as you have already posted
// For all operating systems (like iOS8 upwards) will land in here.
} else {
// use UIActionSheet - like you already used for iOS6
}
检查操作系统部署号是不明智的,比如 if 8.0 等,检查它是否响应类是正确的方法。
它防止崩溃意味着您不依赖不能保证可靠的 float ,因为如果它们在未来更改操作系统的命名方式,您的代码就会崩溃。
关于ios - 为什么我的 UIAlertActions 在 iPad Air 上变为 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29684018/
我想在 UIAlertAction 中返回一个整数。现在我收到错误消息“Int 无法转换为 Void。”警报所在的函数应该返回 int。 这是我的代码: func writeSteps() -> In
我有一个如下所示的函数: @IBAction func showAlert(){ //Some irrelevant code let alert = UIAlertController(title:
当警报中的文本字段为空时,我试图使 UIAlert 摇动,我使用此文本字段将项目添加到我的数组中,并且使用我使用的代码,它不会将任何空值添加到我的列表中,但也不停留在 UIAlertAction 上,
我正在创建警报以响应发现特定的 BLE 特征。此警报有 2 个 UIAlertAction 按钮。从 Xcode (v 6.1.1 6A2008a) 构建时,每个按钮都会正确执行其操作,但使用临时配置
我正在尝试向 UIAlertController 添加一些操作,但是当我向其传递闭包时出现错误。我想将该闭包作为操作的处理程序传递,但我收到一条错误消息。 override func tableVi
我的 UIAlertController 有问题,它没有正确显示背景颜色...你能帮我吗? 这是代码: let alert = UIAlertController(title: "Choose qty
我是 swift 的新手,现在正在学习一本教程书。这本书有点过时了,我遇到了这个错误。 基本上我正在尝试进行表格单元格选择,在我选择单元格后它应该弹出一个菜单然后我可以点击调用按钮。然而,在我点击调用
是否可以将函数连接到 UIAlertAction? 那么在用户点击 OK 按钮后它会执行一个操作吗?这不是 handler 参数的作用吗? let alert: UIAlertController =
我想将 UIAlertAction 文本对齐方式向左对齐,并添加如图所示的图标。我花了很多时间在谷歌上寻找解决方案,但没有找到正确的答案。警报标题的每个正文帖子都不是警报操作标题。 请给我建议swif
我正在尝试创建一个 UIAlertAction,第一个按钮的文本为黑色,第二个按钮的文本为蓝色。如果我改变色调然后全部变黑但没有它我无法将第一个按钮更改为黑色。下面是我的代码: let alert =
我正在尝试弄清楚如何更改 UIAlertAction 标题的字体类型。我假设,这可以通过为特定键设置一个值来完成。例如,要设置图像,您可以这样做: action.setValue(image, for
这个问题在这里已经有了答案: Change Text Color of Items in UIActionSheet - iOS 8 (9 个回答) 关闭 6 年前。 如何更改已添加到 UIAler
现在 iOS8 已弃用 UIActionsheet和 UIAlertview在 iOS7 上工作的自定义不再生效。到目前为止,我知道的唯一自定义是色调颜色。而我需要的是更改标题的字体大小和样式,而我在
我一直在尝试对齐 UIAlertAction 项的标题,但我似乎无法让它工作。 你们知道如何让它在 Objective-C 中工作吗? 最佳答案 [alertAction setValue:[NSNu
我喜欢做一个教程,要求用户必须在位置权限请求中按下“始终允许”按钮。 在我看来,使用一个ViewController并在其中添加一个UIAlertController作为subView,然后添加另一个
我有一个名为 MapLayer 的自定义 NSObject,以及一个由 MapLayers 组成的 NSMuttableArray,创造性地命名为 layersMutableArray。在按下按钮时,
我有几个按钮,点击这些按钮会显示相同的警报。我必须分别处理每个按钮的点击,因此我需要将不同的处理程序传递给这些警报中的每一个。我该怎么做? 我已经搜索了解决方案,但我找不到我要找的东西,或者它可能就在
我正在声明一个变量,然后尝试在 UIAlertAction 中设置它的值。当我在下面的代码中点击 “我要去那里” 按钮时,输出是: 1 thisCustomerRequesting: true 3 t
我目前正在尝试添加一个包含 3 个文本字段的警报。我在消息中添加了多个\n 以使 UIAlertController 更大。但是,当键盘出现时,它会阻止确定和取消按钮。因此,我想知道是否有办法将 UI
单击按钮时如何更改 UIAlertAction 的标题?例如,我想单击该按钮并从“启用”将其设置为“禁用”。我花了很多时间试图实现这一目标,但我无法做到。这是我的问题的一个小演示:https://gi
我是一名优秀的程序员,十分优秀!