我想从appDelegate设置初始视图控制器.我找到了一个非常好的答案,然而它是在目标C中,而我在快速实现同样的事情上遇到了困难.

Programmatically set the initial view controller using 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开始,由于SceneDelegates,您很可能不应该在AppDelegate中执行该操作.取而代之的是从SceneDelegate开始.有关这方面的更多信息,请参阅this other answer


旧答案:

我用这个线索帮助我把目标C转换成了SWIFT,它工作得很好.

Instantiate and Present a viewController in Swift

100代码:

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
}

100代码:

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
}

Ios相关问答推荐

`Task` 在内部调用异步函数时阻塞主线程

async/await、Task 和 [weak self]

使用swift将图像转换为A4大小的pdf

将flutter android项目导入iOS

最新版本的 Xcode 安装时卡住了 (12.5)

CocoaPods 找不到 pod“Firebase/Core”的兼容版本 | cloud_firestore, Flutter

Сocoapods 中继 URL 无法下载

如何删除 SwiftUI NavigationView 中的默认导航栏空间

我可以在 UIScrollView 中使用 UIRefreshControl 吗?

如何使用 SwiftUI 调整图像大小?

SwiftUI 视图 - viewDidLoad()?

如何在 iOS 中判断暗模式?

Flutter:如何在代码中的每个列表项之间添加分隔符?

编译器无法对这个表达式 swift 4 进行类型判断?

请在您的 Podfile 中为此目标指定一个平台?

内循环;构建可能会产生不可靠的结果:Xcode 错误

ios 使用说明的编辑配置:doc.find 不是函数

配置文件与应用程序标识符权利的权利文件值不匹配

在 iPhone X 模拟器的顶部和底部看到黑条

导航栏 rightbaritem 图像按钮错误 iOS 11