xcode - Swift 5. 目标:使应用程序在不使用 segues 的情况下打开特定的 View Controller
问题描述
此代码位于 AppDelegate 中。Xcode 不会抛出任何错误,但是当我在其他视图控制器按钮中调用 func 时,此代码不起作用。(在 View Controller VC1 或 VC2 上打开应用程序)调用代码:(UIApplication.shared.delegate as!AppDelegate).configureInitialViewController()
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
configureInitialViewController()
return true
}
**// determins which VC will be initially launched.**
func configureInitialViewController() {
var initialVC: UIViewController
let storyboard = UIStoryboard(name: "Main", bundle: nil)
if 1 > 0 {
initialVC = storyboard.instantiateViewController(withIdentifier: VC1)
} else {
initialVC = storyboard.instantiateViewController(identifier: VC2)
}
window?.rootViewController = initialVC
window?.makeKeyAndVisible()
}
解决方案
用了你的建议马特。( SceneDelegate.swift 文件)这是代码:
var window: UIWindow?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let windowScene = (scene as? UIWindowScene) else { return }
window = UIWindow(frame: windowScene.coordinateSpace.bounds)
window?.windowScene = windowScene
if 1 > 0 {
window?.rootViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "INPUT YOUR STORYBOARD ID HERE")
} else {
window?.rootViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "INPUT YOUR STORYBOARD ID HERE")
}
window?.makeKeyAndVisible()
}
推荐阅读
- r - R中的短路多个表达式
- okhttp3 - OKHttpClient - 套接字读取超时问题
- python - 将 pandas 节点和边列表从节点标签转换为节点索引
- javascript - JS:从构造函数运行方法并且不再使用对象
- java - 如何根据javafx中的复选框选择生成按钮(图片)
- r - 对如何合并两个图像来创建 gif 感到非常困惑
- matlab - 并行池不识别全局变量
- html - 在同一 CSS 规则中将元素与类选择器混合
- gradle - 无法使用 gradle 和 V-Leaflet 编译 vaadin 小部件集
- c++ - C++11 shared_ptr 和 pthread