[Swift]AppDelegateで他クラスのメソッドを呼び出す

今回は、AppDelegateから他のクラスのメソッドを呼び出す方法を紹介します。
このやり方には二通りあるので用途に合わせてご使用ください。

補足
Swift4.0にも対応しています。
今回のサンプルコードはViewControllerクラスを使用しています。

クラスの値を使う場合

記述するコードは、以下の3つです。

AppDelegateのclassの下に記述するコード
import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var viewController: ViewController!
////下は省略/////
AppDelegate内でメソッドを呼び出したいところで記述するコード
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.viewController.メソッド名()
ViewController内のviewDidLoadに記述するコード
override func viewDidLoad() {
        super.viewDidLoad()

        let appDelegate:AppDelegate = UIApplication.shared.delegate as! AppDelegate
        appDelegate.viewController = self
}

クラスの値は使わない

記述するコードは、以下の1つです。

AppDelegate内でメソッドを呼び出したいところで記述するコード
ViewController().メソッド名()

[Swift]iPhoneの画面サイズごとにStoryboardを変更する [Xcode]よくあるエラー。Undefined symbols for architecture i386 …

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください