UIActionSheet
从 iOS 8 开始已弃用,并被 UIAlertController
替换,后者提供了一个更好的界面。不幸的是,如果您必须支持您的应用程序中较旧的 iOS 版本,您仍然需要使用 UIActionSheet
。坏消息是 UIActionSheet
从 iOS 8 开始的实现已经改变,出现了不同的错误。
SBTActionController
提供了与 UIAlertController
最为接近的界面。底层它会在可用的情况下使用 UIAlertController
,否则回退到使用 UIActionSheet
。
要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install
。然后打开示例工作空间。
需要 Xcode 6 或更高版本以及 iOS SDK 8.0 或更高版本进行编译。在之前的 iOS SDK 版本上运行,但在 iOS 7 上进行了测试。
创建动作控制器
SBTActionController *actionController = [SBTActionController actionControllerWithTitle:NSLocalizedString(@"Are you sure?", nil)
message:NSlocalizedString(@"Deleting the item is irreversable", nil)];
创建您想向用户展示的动作,并将它们添加到动作控制器中
// Create the actions you want to present to the user
SBTAction *deleteAction = [SBTAction actionWithTitle:NSLocalizedString(@"Delete item", nil)
style:UIAlertActionStyleDestructive
handler:^(SBTAction *action) {
// delete item
}];
[actionController addAction:deleteAction];
SBTAction *modifyAction = [SBTAction actionWithTitle:NSLocalizedString(@"Modify item", nil)
style:UIAlertActionStyleDefault
handler:^(SBTAction *action) {
// modify item
}];
[actionController addAction:modifyAction];
SBTAction *cancelAction = [SBTAction actionWithTitle:NSLocalizedString(@"Cancel", nil)
style:UIAlertActionStyleCancel
handler:NULL];
[actionController addAction:cancelAction];
然后展示它
[actionController presentActionsFromBarButtonItem:barButtonItem
inViewController:self
animated:YES
completion:NULL];
欢迎贡献!如果您有一个问题要报告,可以免费帮助我们,例如通过打开一个新的问题或发送一个 pull 请求。
SBTActionController 根据 Apache 许可证,版本 2.0 提供服务。请参阅 LICENSE 文件以获取更多信息。