2
我知道這個問題之前已經被問到過,並且我發現了兩個不同的代碼行,它們聲稱在導航欄中的欄按鈕項的標識符中執行更改。兩者都編譯,但對標識符沒有任何影響。我將標識符設置爲「播放」按鈕啓動程序,並將其更改爲「暫停」按鈕。我已經在viewDidLoad()和裏面運行了這兩行代碼在導航欄欄按鈕中更改按鈕標識
IBAction func startButton(sender: AnyObject) {
這是代碼。誰能告訴我爲什麼按鈕標識不變?而且,正確的按鈕/左按鈕看起來很明顯,或者在我沒有得到的代碼中存在某些關於單詞的內容。
self.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Pause, target: self, action: "startButton:")
self.navigationItem.setLeftBarButtonItem(UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Pause, target: self, action: "startButton"), animated: true)
這是整個viewDidLoad,它也不起作用。
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Pause, target: self, action: "startButton:")
}
我試過了,它對按鈕沒有任何影響。我很好奇,對於一個按鈕有兩個不同的操作,系統將如何知道要執行哪個操作。我添加了一個bool開關,因此它應該只執行一個代碼塊或另一個代碼塊,但是我的問題是,當您按下按鈕時,兩個代碼塊都會運行?無論如何,這是行不通的。你試過了嗎?在最簡單的情況下,UEViewDidLoad中的單行應該更改按鈕標識符(如果可以的話)。仍然需要幫助。 – Bendrix
顯然,我嘗試過....這裏有兩個不同的按鈕,它們各自的操作......只是將它們用作您的需要。或者你可以通過使用bool標誌只用一個動作來改變按鈕。 – VRAwesome
我可能會感到困惑。回答文字說「併爲按鈕創建兩個@IBAction」,並在上面的評論中說,「兩個不同的按鈕分別帶有相應的動作」。爲了澄清,那麼,上面的答案有兩個不同的按鈕,都在leftBarButtonItem位置?你能覆蓋這樣的按鈕嗎?即使使用兩個IBAction作爲一個按鈕,也無法在理論上來回切換控制。如果你有兩個一個項目,我不知道編譯器如何知道要運行哪個IBActions。如果您發佈整個解決方案的代碼,這將有所幫助。 – Bendrix