1. ホーム
  2. ios

[解決済み] Storyboardsを使わずに新しいSwiftプロジェクトを作成するにはどうしたらいいですか?

2022-10-19 09:25:14

質問

XCode 6 で新しいプロジェクトを作成すると、Storyboards を無効にすることができません。Swift または Objective-C を選択し、Core Data を使用するかしないかを選択することしかできません。

ストーリーボードを削除し、プロジェクトからメインのストーリーボードを削除し、didFinishLaunchingからウィンドウを手動で設定しようとしました。

AppDelegateではこのようになっています。

class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow
var testNavigationController: UINavigationController

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {

        testNavigationController = UINavigationController()
        var testViewController: UIViewController = UIViewController()
        self.testNavigationController.pushViewController(testViewController, animated: false)

        self.window = UIWindow(frame: UIScreen.mainScreen().bounds)

        self.window.rootViewController = testNavigationController

        self.window.backgroundColor = UIColor.whiteColor()

        self.window.makeKeyAndVisible()

        return true
    }
}

しかし、XCodeではエラーになります。

クラス 'AppDelegate' には初期化子がありません。

どなたか成功された方はいらっしゃいますか?

どのように解決するのですか?

をマークする必要があります。 windowtestNavigationController という変数をオプションで指定します。

var window : UIWindow?
var testNavigationController : UINavigationController?

Swiftのクラスはインスタンス化の際に任意ではないプロパティが初期化されることを要求します。

クラスと構造体は、そのクラスまたは構造体のインスタンスが作成されるまでに、保存されているすべてのプロパティを適切な初期値に設定する必要があります。ストアドプロパティを不確定な状態のままにしておくことはできません。

オプション型のプロパティは自動的にnilの値で初期化され、初期化の際にプロパティが意図的に「まだ値がない」ことを示す。

オプショナル型の変数を使用する場合は、ラップを解除するために ! などとします。

self.window!.backgroundColor = UIColor.whiteColor();