スイフト3.0
のviewDidLoad()内部UIBarButtonを宣言
override func viewDidLoad() {
super.viewDidLoad()
let logout: UIBarButtonItem = UIBarButtonItem.init(title: "Logout", style: .plain, target: self, action: #selector(ViewController.logOut))
}
func logOut() {
print("LogOut")
}
のviewDidLoad()外部UIBarButtonItemを宣言viewDidLoad完全に外側に
var logout:UIBarButtonItem = UIBarButtonItem()
override func viewDidLoad() {
super.viewDidLoad()
logout = UIBarButtonItem.init(title: "Logout", style: .plain, target: self, action: #selector(ViewController.logOut))
}
func logOut() {
print("LogOut")
}
宣言は()
lazy var logout: UIBarButtonItem = {
UIBarButtonItem.init(title: "Logout", style: .plain, target: self, action: #selector(ViewController.logOut))
}()
いずれかが動作するはずです。あなたのアクションのパラメータについては
どちらかあなたはViewController
名を明示的に指定することができますまたはあなただけのself
を言うことができます。
action: #selector(self.logOut)
あなたは 'のviewDidLoad()'メソッド内で 'UIBarButton'項目を宣言することができます。あなたのアクチンのメソッドが呼び出される必要があります。あなたの欠けているものかもしれません。 –
@Ashokあなたの答えをありがとう。宣言UIBarButtonItemをviewDidLoad()の中に置くと動作します。しかし、なぜ宣言をviewDidLoad()の外側に置くことができないのですか? – littlebear333