繁体   English   中英

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

[英]How to reference classes from two different targets in AppDelegate?

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

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

但是,这里存在一个问题,因为 Xcode 说它无法识别类ViewController2 AppDelegate.swift是两个目标的成员, ViewController1是目标 1 的成员, ViewController2是目标 2 的成员。每当我将 ViewController2 设置为目标 2 的成员时,这个错误就会消失,但同样的错误会弹出ViewController2.swift每当我引用另一个仅是目标 2 成员的文件时。

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

 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 在编译代码时只能访问目标中选择的文件。 因此,根据选定的目标,如果您也不添加其他 viewController,xcode 也无法识别它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM