iOS 8 UIActionSheet 忽略视图控制器supportedInterfaceOrientations 和shouldAutorotate

ios

1个回答

写回答

提列克

2025-07-06 22:05

+ 关注

IOS
IOS

IOS 8引入了一个新的UIActionSheet类的替代品UIAlertController,它提供了更灵活和现代化的方式来显示操作选项。在IOS 8之前,我们可以通过UIActionSheet来显示一个弹出式的菜单,让用户选择不同的操作。然而,这种方法在IOS 8中已经被废弃,因为UIAlertController提供了更多的功能和自定义选项。

UIAlertController的优势

UIAlertController是一个非常强大的类,它提供了三种不同的样式:UIAlertControllerStyleActionSheet、UIAlertControllerStyleAlert和UIAlertControllerStyleLoginAndPasswordInput。每种样式都有不同的用途和外观,以适应不同的需求。

与UIActionSheet相比,UIAlertController提供了更多的自定义选项。我们可以添加文本输入框、按钮和自定义视图等,以满足不同的需求。同时,UIAlertController还支持更多的动作,如添加动作处理程序、取消按钮和自定义按钮。

代码示例

下面是一个简单的示例,演示了如何使用UIAlertController来显示一个操作菜单:

Swift

let alertController = UIAlertController(title: "选择操作", message: nil, preferredStyle: .actionSheet)

let action1 = UIAlertAction(title: "操作1", style: .default) { _ in

// 执行操作1

}

let action2 = UIAlertAction(title: "操作2", style: .default) { _ in

// 执行操作2

}

let cancelAction = UIAlertAction(title: "取消", style: .cancel) { _ in

// 取消操作

}

alertController.addAction(action1)

alertController.addAction(action2)

alertController.addAction(cancelAction)

present(alertController, animated: true, completion: nil)

在这个示例中,我们首先创建了一个UIAlertController实例,设置了标题为"选择操作",样式为.actionSheet。然后,我们创建了两个UIAlertAction实例,分别表示操作1和操作2。每个UIAlertAction实例都有一个处理程序,用于在用户选择该操作时执行相应的代码。最后,我们创建了一个取消操作的UIAlertAction实例,并将所有的UIAlertAction实例添加到UIAlertController中。

最后一步是使用present(_:animated:completion:)方法来显示UIAlertController。

通过引入UIAlertController,IOS 8提供了一个更灵活和功能更强大的方式来显示操作菜单。UIAlertController不仅提供了更多的自定义选项,还支持更多的动作处理程序和按钮样式。如果你还在使用UIActionSheet,我建议你尽早迁移到UIAlertController,以便能够充分利用IOS 8及更高版本提供的新功能和优势。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号