Help us understand the problem. What is going on with this article?

【Swift】iOSでViewControllerに隠しコマンドを埋め込む方法

More than 5 years have passed since last update.

by @SzkAtmosphere

はじめに

レトロゲームと呼ばれるようになったファミコンやスーファミのゲームには、ゲーム内の隠し要素を出現させるためのコマンドが存在するものが度々見受けられました。その中でも広く知られているのが、グラディウスに仕込まれている通称"コナミコマンド"だと思います。
隠しコマンドを使っていつもとは違う裏要素を見るというのも、ゲームを楽しむ上での一つの要素だったりもするのではないでしょうか。
そういった隠しモードをアプリでも実現したら面白いのではないとか考え、スワイプジェスチャーとABボタンでコマンドを入力できるSASecretCommandViewControllerを作ってみました。
こちらからYoutubeにアップロードしてあるデモ動画が視聴できます。
aaa.jpg

インストール方法

  • Cocoapods

SASecretCommandViewControllerはSwiftで書かれているため、Cocoapodsでインストールするには0.36 beta以上の環境が必要になります。また、Development TargetはiOS8以上にしてください。下記の内容のPodfileを作成し、pod installを実行してください。

platform :ios, "8.0"
pod 'SASecretCommandViewController'
  • マニュアル

SASecretCommandViewControllerをcloneまたはダウンロードし、SASecretCommandViewController/SASecretCommandViewControllerディレクトリのswiftファイルをProjectに全てコピーしてください。マニュアルインストールの場合はiOS7.0以上で使用可能です。

使い方

Cocoapodsからインストール場合は、使用するswiftファイル内でimport SASecretCommandViewControllerをしてください。

導入自体はいたって簡単で
1. SASecretCommandViewControllerを継承したViewControllerを生成
2. viewDidLoad()でコマンドを登録
3. secretCommandPassed()をオーバーライドし、コマンドが通った際の処理を記述
の3点になります。

class ViewController: SASecretCommandViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        // SASecretCommandTypeの配列を用意し、コマンドを登録します
        let commandList: [SASecretCommandType] = [
            .Up,
            .Up,
            .Down,
            .Down,
            .Left,
            .Right,
            .Left,
            .Right,
            .B,
            .A
        ]
        self.registerSecretCommand(commandList)

        // 入力したコマンドを表示します
        self.showInputCommand = true
    }

    override func secretCommandPassed() {
        super.secretCommandPassed()
        // ここにコマンドが通った際の処理を記述します
    }
}

SASecretCommandTypeには
・Up
・Down
・Left
・Right
・A
・B
があるので、それらを自由に組み合わせて隠しコマンドを登録することができます。
showInputCommandfalseにすることで、入力したコマンドを非表示にすることができます

最後に

大概のアプリには"アプリについて"というバージョン情報やライセンス系を表示するViewがあると思うのですが、そういったViewなどに隠しコマンドを埋め込んだりしたら面白いかもしれませんね。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away