【发布时间】:2019-08-21 22:46:42
【问题描述】:
我正在尝试创建一个包含视图控制器的框架(Login VC)。我已成功导入框架并呈现 VC,但视图未显示。我在导入的 viewDidLoad 中有一个打印功能,它正在打印。我错过了什么?
框架 VC:
public class LoginVC: UIViewController {
@IBOutlet weak var button: UIButton! {
didSet {
button.addTarget(self, action: #selector(buttonPressed), for: .touchUpInside)
}
}
public override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override public func viewDidLoad() {
super.viewDidLoad()
print("View Loaded") // Firing
}
@objc func buttonPressed() {
print("hello")
}
}
框架 VC Xib:
这是我展示框架 VC 时的视图调试器
-- 更新:这就是我展示 VC 的方式 ---
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
let homeViewController = LoginVC()
homeViewController.view.backgroundColor = UIColor.white
window!.rootViewController = homeViewController
window!.makeKeyAndVisible()
return true
}
-- 更新--
由于许多 cmets 与应用程序委托相关,我首先展示一个通用 ViewController,然后它会展示我的登录框架 VC。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
let homeViewController = ViewController()
homeViewController.view.backgroundColor = UIColor.white
window!.rootViewController = homeViewController
window!.makeKeyAndVisible()
return true
}
class ViewController: UIViewController {
@IBOutlet weak var button: UIButton! {
didSet {
button.addTarget(self, action: #selector(presentNext), for: .touchUpInside)
}
}
@objc func presentNext() {
let loginVC = LoginVC()
present(loginVC, animated: true, completion: nil)
}
}
现在,当我展示登录框架时,我得到的只是黑屏。
-- 更新--
我可以在 viewdidLoad 中更改视图的背景颜色,但不会显示 xib 视图。这是为什么呢?..
【问题讨论】:
-
你说你“成功地介绍了 VC”……你是怎么做到的?
-
@LorenzoSantini 更新了问题——我在应用程序委托中显示它。
-
我假设您忘记在“window”前面插入“let”...或者您是否在其他地方声明了它?
-
@LorenzoSantini 这是一个类属性。代码编译并构建。
-
你用的是什么版本的swift?
标签: ios swift uiviewcontroller frameworks