2017-05-04 51 views
0

在我的故事板中,我有一個UITableViewController(嵌入在UINavigationController中),我在其上添加了CANCEL按鈕作爲左欄按鈕項。抑制UINavigationController欄中默認的「編輯」按鈕的方法?

在運行時,CANCEL按鈕不會出現,但是EDIT按鈕會出現。

我還沒有明確地添加編輯按鈕並一直保持編輯功能的默認實現其禁用狀態這樣的:

// Override to support conditional editing of the table view. 
override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool { 
    // Return false if you do not want the specified item to be editable. 
    return false 
} 

我已經研究過的方法來隱藏編輯按鈕,這條線的代碼作品:

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 
    self.navigationItem.leftBarButtonItem = nil 
} 

...因爲它隱藏了編輯按鈕。但是,它也隱藏了CANCEL和左邊的所有其他按鈕!

我發現代碼,明確顯示了編輯按鈕,即:

self.navigationItem.leftBarButtonItem = self.editButtonItem 

但找不到取消等同。

那麼,有沒有辦法隱藏編輯按鈕,但顯示取消按鈕?

---更新#1 ---

我已經通過每隨附的屏幕截圖一個IBOutlet連接取消按鈕上我的課的代碼。 enter image description here

---更新#2 ---

我現在已經確保了

tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath)

tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath)

被註釋掉。所以,據我所知,這個TableViewController對編輯行沒有任何幫助。然而,'編輯'按鈕仍然出現並混淆了我的'取消'按鈕。

+1

你的故事板的屏幕截圖會有幫助。 –

+0

取消按鈕和編輯按鈕都是左側? 如果是,那麼你應該做一件事情,爲什麼你不改變那個取消按鈕的標題,並檢查該按鈕的選擇布爾值,並根據你做的代碼和改變它的標題。 – Akash

+0

@Akash,我不確定你要求我做什麼。我曾嘗試將其改爲「自定義」系統,而不是「取消」。我也改變了按鈕的標題,但沒有改變。你是什​​麼意思'檢查該按鈕被選中布爾值'? – Dave

回答

0

leftBarButtonItems是一個稍微不同的東西比leftBarButtonItem

這聽起來像你的取消按鈕已經被添加到navigationItem的leftBarButtonItems您的視圖控制器,但是你沒有在你的類的引用。爲它創建一個IBOutlet引用,您應該能夠以與編輯按鈕相同的方式將其明確設置爲leftBarButtonItem

+0

我已經有一個IBOutlet設置爲取消按鈕。請參閱包含故事板和代碼截圖的我的問題更新。 – Dave

0

Facepalm時間。

我已經從另一類其具有編輯按鈕的方法複製明確地顯示在下面的行:

self.navigationItem.leftBarButtonItem = self.editButtonItem

刪除此線去除在運行時的編輯按鈕。

相關問題