在UIView中解除可选错误

时间:2017-09-06 01:54:50

标签: swift3 uiview optional

我想以编程方式控制菜单视图,所以我尝试了以下内容:

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)

enter image description here

两者都连接到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()
    }

}

为什么我不使用它:

enter image description here

当menuView出现时我无法滚动..我想使用菜单视图中的按钮并同时滚动。

0 个答案:

没有答案