2016-10-28 73 views
1

編輯:我忘了提及我不能使用Apple的預定義編輯按鈕,因爲我需要工具欄中的按鈕而不是導航欄(我找不到在工具欄上添加Apple的編輯按鈕的方法。是可能的,請讓我知道)。爲什麼我的導航工具欄中的UIBarButtonItem不能更改標題?

我知道這個問題似乎是一個很大的已經問其他的問題,但我已經嘗試了所有的這些問題和他們的非解決方案已經幫助我解決這個問題。

我研究這個問題,並嘗試每一個解決方案,我發現能想到的。

我有我的工具欄中的UIBarButtonItem。它是作爲編輯按鈕工作的,所以點擊時我希望標題改回完成。但是,每當我改變標題時,什麼都不會發生。我也測試了這個值,當我打印出標題的值時,我每次都得到零值。我無法弄清楚這個...

@IBOutlet weak var customEditButton: UIBarButtonItem! 
func viewDidLoad() { 
    super.viewDidLoad() 

    tableView.setEditing(false, animated: false) 
    customEditButton.title? = "Edit" 
    print("customEditButton = \(customEditButton.title)") //This prints nil 

    ... 
} 

@IBAction func editButtonIsClicked(_ sender: UIBarButtonItem) { 
    print("MarksTable: editButtonIsClicked") 
    if (self.tableView.isEditing) { 
     tableView.setEditing(false, animated: true) 
     customEditButton.title? = "Edit" 
    } 
    else { 
     tableView.setEditing(true, animated: true) 
     customEditButton.title? = "Done" 
    } 
} 

這不是我試過的唯一的東西。我也曾嘗試

customEditButton = UIBarButtonItem.init(title: "Done", ...) 但也失敗了。

有誰知道爲什麼會發生這種情況或有解決方案的問題?

+0

我不確定您可以在初始化欄按鈕後更改標題。您是否嘗試過使用標題和相應的操作以編程方式創建editBarButtonItem和doneBarButtonItem。然後在代碼中切換它們,即在工具欄中添加和刪除另一個。 –

+0

@AlanPerez不,我還沒有嘗試過。我會試一試,看看它是否有效。謝謝。 – Logan

回答

2

所以,我是能夠重現上我自己的項目您的問題,我有它正確運行。

您的問題可能出在您添加到工具欄的按鈕的系統項目類型中。轉至故事板,選擇您的按鈕,並確保您設置它的系統項目定製在屬性檢查器,而不是編輯。最初,我嘗試過使用Edit,但是它並沒有像更改標題那樣簡單,就好像將其設置爲Custom一樣。

這之後我創建了一個插座和按鈕的動作,就像你在你的代碼一樣。

  1. 這裏的出口 - > @IBOutlet weak var editBarButton: UIBarButtonItem!

  2. 而這裏的按鈕操作:

    @IBAction func tappedEditButton(sender: UIBarButtonItem) { 
    
        if tableView.editing { 
         tableView.setEditing(false, animated: true) 
         editBarButton.title = "Edit" 
        } else { 
         tableView.setEditing(true, animated: true) 
         editBarButton.title = "Done" 
        } 
    

希望這能很好地解決您的問題,最好的運氣!

+0

謝謝!問題是我的按鈕設置爲「編輯」而不是「自定義」。 – Logan

+0

我的榮幸!我很高興它爲你解決了! – nunezve

相關問題