如何在AppDelegate中引用来自两个不同目标的类



我的应用程序中有两个不同的目标,我希望在启动时根据目标显示特定的视图控制器。现在我的代码是这样的:

if target1:
window?.rootViewController = ViewController1()
else:
window?.rootViewController = ViewController2()

然而,这里有一个问题,因为Xcode说它不能识别类ViewController2AppDelegate.swift是两个目标的成员,ViewController1是目标1的成员,而ViewController2是目标2的成员。每当我将ViewController2设置为目标2的成员时,此错误就会消失,但每当我引用另一个仅为目标2成员的文件时,ViewController2.swift中就会弹出相同的错误。

我只是使用导航控制器,并使用视图控制器标识符来设置我的目标控制器。试试这个,这对你有帮助吗

if target1{
let window = UIWindow(frame:UIScreen.main.bounds)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let navigate = storyboard.instantiateViewController(withIdentifier: 
"ViewController") as! ViewController
navController = UINavigationController(rootViewController: navigate)
window?.rootViewController = navController
navigate.navigationController?.navigationBar.isHidden = true
window?.makeKeyAndVisible()
}else{
let window = UIWindow(frame:UIScreen.main.bounds)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let navigate = storyboard.instantiateViewController(withIdentifier: 
"ViewController") as! ViewController
navController = UINavigationController(rootViewController: navigate)
window?.rootViewController = navController
navigate.navigationController?.navigationBar.isHidden = true
window?.makeKeyAndVisible()

}

您应该将ViewController1和ViewController2都添加到两个目标中,因为xcode在编译代码时只能访问在目标中选择的文件。因此,根据所选的目标,如果您也不添加它,xcode也不会识别另一个viewController。

最新更新