我的iPhone应用程序只有在应用程序第一次启动时才需要显示操作表。我如何在Swift中完成这项工作?谢谢你的帮助。
答案 0 :(得分:0)
您想要查看UIAlertController。 UIActionSheet已弃用。这很容易使用。
使用Obj-C,您可以使用conventience方法创建实例,将样式设置为actionSheet。然后为工作表上的每个“按钮”调用addAction。以下是您可以使用的一些代码:
- (IBAction)actionButtonAction:(id)sender {
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Select an action" message:nil preferredStyle:UIAlertControllerStyleActionSheet];
[alertController addAction:[UIAlertAction actionWithTitle:@"Share Data" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
// Your activity
}]];
[alertController addAction:[UIAlertAction actionWithTitle:@"Share Plot" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
// Your activity
}]];
[alertController addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
// User cancelled
}]];
// Present VC.
[self presentViewController:alertController animated:YES completion:^{
}];
}
答案 1 :(得分:0)
您将拥有一个在应用程序启动时打开的视图控制器(当您第一次启动swift项目时,您的故事板中将包含一个视图控制器,这是根控制器,以及最初的“viewController.swift”)在项目中生成的文件已连接到它。
来自该根控制器(或您用作初始视图控制器的任何视图控制器)
您可以创建,配置和呈现为ViewDidAppear方法中的ActionSheet样式配置的UIAlertController。
就像这样
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
let userDefaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
let firstTimeLoggingIn: Bool? = userDefaults.objectForKey("firstTimeLogin") as? Bool
if (firstTimeLoggingIn == nil) {
userDefaults.setBool(true, forKey: "firstTimeLogin")
actionSheetForFirstLogin()
}
}
func actionSheetForFirstLogin() {
let actionSheet: UIAlertController = UIAlertController(title: "the title", message: "the message", preferredStyle: .ActionSheet)
let callActionHandler = { (action:UIAlertAction!) -> Void in
let alertMessage = UIAlertController(title: action.title, message: "You chose an action", preferredStyle: .Alert)
alertMessage.addAction(UIAlertAction(title: "OK", style: .Default, handler: nil))
self.presentViewController(alertMessage, animated: true, completion: nil)
}
let action1: UIAlertAction = UIAlertAction(title: "action title 1", style: .Default, handler:callActionHandler)
let action2: UIAlertAction = UIAlertAction(title: "action title 2", style: .Default, handler:callActionHandler)
actionSheet.addAction(action1)
actionSheet.addAction(action2)
presentViewController(actionSheet, animated: true, completion:nil)
}
}
这也分离了操作表的动作处理程序,因此您可以看到如何独立创建它们并添加它们。在这个例子中,我只创建了一个,并检查了动作标题,以显示将根据选择显示的警报;但是,您总是可以创建单独的操作。
修改强>
我已添加NSUserDefaults来处理首次登录方案