Storyboardを使用しないSwiftでアプリを準備する。
以前書いた記事からiOS 10 SDKになってアップデートしないといけないところとなります。
SDKの10からAppDelegate.swiftでの記述が変わったようですね(Swiftだけの記述になってますがObjective-cでも変わっているはず)。
Storyboardを使わないでViewControllerを呼び出す場合、変更されたapplicationメソッドを使えばまぁいけるわけです。
引数launchOptionsの記述方法が変わったんですね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| import UIKit
@UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow? var navigationController: UINavigationController?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool { window = UIWindow(frame: UIScreen.main.bounds) window?.makeKeyAndVisible() let viewController = ViewController() navigationController = UINavigationController(rootViewController: viewController) window?.rootViewController = navigationController return true }
func applicationWillResignActive(_ application: UIApplication) { }
func applicationDidEnterBackground(_ application: UIApplication) { }
func applicationWillEnterForeground(_ application: UIApplication) { }
func applicationDidBecomeActive(_ application: UIApplication) { }
func applicationWillTerminate(_ application: UIApplication) { }
}
|
何も考えずに以前のままのソースをまるっとコピーして使おうとすると注意されました。
以下のような感じでprivateアクセス修飾子をつけろっていわれて、はいはいつけますよってつけるとまぁapplicationメソッドは呼ばれなくなりますわな。
でだったらどうするのよってことでXcodeのアドバイスのままにapplicationDidFinishLaunchingメソッドを追記したらそちらが呼ばれるようになります。
どちらがいいかは好みの分かれるところかと思いますね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| import UIKit
@UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow? var navigationController: UINavigationController?
private func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { return true }
func applicationDidFinishLaunching(_ application: UIApplication) { window = UIWindow(frame: UIScreen.main.bounds) window?.makeKeyAndVisible() let viewController = ViewController() navigationController = UINavigationController(rootViewController: viewController) window?.rootViewController = navigationController }
func applicationWillResignActive(_ application: UIApplication) { }
func applicationDidEnterBackground(_ application: UIApplication) { }
func applicationWillEnterForeground(_ application: UIApplication) { }
func applicationDidBecomeActive(_ application: UIApplication) { }
func applicationWillTerminate(_ application: UIApplication) { }
}
|