1. ホーム
  2. ios

[解決済み] appdelegateでviewcontrollerの初期値を設定する - swift

2022-04-24 01:51:01

質問

appdelegateから初期ビューコントローラを設定したいのですが、どうすればいいですか?私は本当に良い答えを見つけましたが、それは Objective C で、私は swift で同じことを達成するのに苦労しています。

Storyboardsを使用してプログラム的に初期ビューコントローラを設定する

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

    UIViewController *viewController = // determine the initial view controller here and instantiate   it with [storyboard instantiateViewControllerWithIdentifier:<storyboard id>];

    self.window.rootViewController = viewController;
    [self.window makeKeyAndVisible];

    return YES;
}

どなたかお手伝いいただける方はいらっしゃいませんか?

条件文を使って、ある条件を満たした場合に、最初のViewcontrollerを依存させたいのです。

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

Xcode11とSceneDelegateの注意点。

Xcode11からは、SceneDelegateの関係で、内部ではやらない方が良さそうです。 AppDelegate . 代わりに SceneDelegate . それについては、以下を参照してください。 この他の答え


古い回答です。

このスレッドを使って、オブジェクトCをスイフトに変換し、完璧に動作するようにしました。

SwiftでviewControllerをインスタンス化して提示する

スウィフト2 のコードを使用します。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
    
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    
    let initialViewController = storyboard.instantiateViewControllerWithIdentifier("LoginSignupVC")
    
    self.window?.rootViewController = initialViewController
    self.window?.makeKeyAndVisible()
    
    return true
}

スウィフト3 のコードを使用します。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    self.window = UIWindow(frame: UIScreen.main.bounds)

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    
    let initialViewController = storyboard.instantiateViewController(withIdentifier: "LoginSignupVC")

    self.window?.rootViewController = initialViewController
    self.window?.makeKeyAndVisible()

    return true
}