伙计们。 我正在寻求帮助。这似乎是一项非常简单的任务,但我可以一整天解决。 我正在尝试使用容器视图创建侧面菜单。当用户按下“更多”按钮(barButtonItem)时,整个视图向右滑动,并显示菜单表。我知道如何使用通知。但我想通过代表团解决。这是我的故事板。 enter image description here
和代码:
import UIKit
class RootViewController: UIViewController, SideMenuDelegate {
@IBOutlet weak var leading: NSLayoutConstraint!
var sideMenuIsOpen = false
var sideMenu: MainViewController?
override func viewDidLoad() {
super.viewDidLoad()
sideMenu?.delegate = self
}
func openSideMenu() {
toggleSideMenu()
}
func toggleSideMenu() {
if sideMenuIsOpen {
leading.constant = 0
} else {
leading.constant = 240
}
}
}
和: 导入UIKit
protocol SideMenuDelegate {
func openSideMenu()
}
class MainViewController: UIViewController {
var delegate: SideMenuDelegate?
@IBAction func toggleSideMenu(_ sender: UIBarButtonItem) {
if let delegateUnwrapped = delegate {
delegateUnwrapped.openSideMenu()
} else {
print("nil")
}
}
override func viewDidLoad() {
super.viewDidLoad()
BackgroundImageView.createBackground(insideView: self, image: .mainViewBackground)
}
}
谢谢!
答案 0 :(得分:0)
此
var sideMenu: MainViewController? // is nil
override func viewDidLoad() {
super.viewDidLoad()
sideMenu?.delegate = self
}
没有对当前显示的主文件的引用,当您从根目录中显示主文件时,它是nil