我想以编程方式控制菜单视图,所以我尝试了以下内容:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var menuView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func menuBtn(_ sender: UIButton) {
print("menuBtn")
print(type(of: menuView!)) // <- `Thread 1:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)`
}
}
然后单击按钮,控制台说
fatal error: unexpectedly found nil while unwrapping an Optional value (lldb)
两者都连接到ViewController。
我如何获得print(type(of: menuView!))
?
=============================================== ================
PS。
我简化了我的真正问题。这是我的真实代码:
ViewController.Swift上的按钮
@IBAction func openModal(_ sender: UIButton) {
print("open btn clicked")
let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "menuViewController") as! MenuViewController
self.addChildViewController(vc)
self.view.addSubview(vc.contentView!) /// <- This cause problem
}
MenuViewController.swift
import UIKit
class MenuViewController: UIViewController {
@IBOutlet weak var contentView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = UIColor.clear
view.isOpaque = false
}
@IBAction func closeBtn(_ sender: UIButton) {
print("close btn clicked")
self.view.removeFromSuperview()
}
}
为什么我不使用它:
当menuView出现时我无法滚动..我想使用菜单视图中的按钮并同时滚动。