我已经多次面对这个问题了,我无法解决它的问题。
以下是代码:
struct dataSource {
let menu = MenuView()
static var array = NSArray(contentsOfFile: Bundle.main.path(forResource: "Australie", ofType: "plist")!)!
init() {
}
func getDicoSection(sectionNumber: Int) -> NSDictionary {
var dico = NSDictionary()
dico = dataSource.array[sectionNumber] as! NSDictionary
return dico
}
func getNumberOfRootSections() -> Int {
return dataSource.array.count
}
func setMenu(delegate: MenuViewDelegate, menuView: MenuView, rootView: UIView, navigationController: UINavigationController, navigationItem: UINavigationItem) {
let menuButton = UIBarButtonItem(title: "test", style: .plain, target: self, action: #selector(dataSource.menuButtonSelected))
navigationController.navigationBar.isTranslucent = false // permet de faire en sorte que la view ne soit pas derrière la navigationBar
navigationController.navigationBar.barTintColor = UIColor.red
navigationItem.rightBarButtonItem = menuButton
print(menuButton)
MenuView().delegate = delegate
rootView.addSubview(menu)
menu.backgroundColor = UIColor.lightGray
}
func menuButtonSelected() {
print("OK")
}
}
在我的按钮上,我为按下时要调用的动作添加一个选择器。这是一个简单的打印(“OK”)。
然而,Swift要我把@objc放在我的方法前面。为什么?我完全不知道为什么。但我对XCode很有弹性,所以我服从了。我添加@objc。但正如您所看到的,它根本无法解决任何问题:https://drive.google.com/open?id=0B-AByLCqlbVBcG95SFhTOE1sMzA
我想我会在那之后去精神诊所。