Отображение листа действий при первом запуске приложения iPhone iOS 8

Моему приложению для iPhone необходимо отображать лист действий только при первом запуске приложения. Как мне добиться этого в Swift? Спасибо за помощь.

2 ответа

Вы хотите посмотреть на UIAlertController. UIActionSheet устарела. Это очень просто в использовании.

С Obj-C вы создаете экземпляр с методом условного обращения, устанавливая стиль в 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:^{

    }];
}

У вас будет контроллер представления, который открывается при запуске приложения (когда вы впервые запускаете проект swift, в вашей раскадровке будет один контроллер представления, это корневой контроллер и исходный файл "viewController.swift", который создается в проекте подключен к нему.

от этого корневого контроллера (или любого контроллера представления, который вы используете в качестве начального контроллера представления)

Вы можете создать, настроить и представить UIAlertController, настроенный для стиля ActionSheet в методе ViewDidAppear.

Именно так

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 для обработки сценария первого входа

Другие вопросы по тегам