2017-05-04 7 views
0

私のストーリーボードには、UITableViewControllerUINavigationControllerに埋め込まれています)があり、その上に左のバーボタンアイテムとしてCANCELボタンが追加されています。UINavigationControllerバーのデフォルトの「編集」ボタンを抑制する方法は?

実行時に[CANCEL]ボタンは表示されませんが、[EDIT]ボタンは実行されます。

私は明示的に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 
} 

私は、EDITボタンと、この行を非表示にする方法に見てきましたコードの動作:

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

... EDITボタンが表示されません。しかし、それはまたCANCELと他のすべてのボタンを左に隠します!

私は明示的にEDITボタンを示したコード、すなわち:

self.navigationItem.leftBarButtonItem = self.editButtonItem 

を発見した。しかし、CANCELのための同等のものを見つけることができません。

EDITボタンを隠す方法がありますが、キャンセルボタンが表示されていますか?

--- UPDATE#1 ---

私はすでに、添付のスクリーンショットあたりIBOutletを経由して、私のクラスコードに[キャンセル]ボタンが接続されています。 enter image description here

--- UPDATE#2 ---

は、私が今

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

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

がコメントアウトされていることを保証しています。だから、私が知る限り、行の編集を可能にするこのTableViewControllerについては何もありません。それでも「EDIT」ボタンが表示され、「CANCEL」ボタンがわかりにくくなります。

+1

ストーリーボードのスクリーンショットが役立ちます。 –

+0

キャンセルボタンと編集ボタンの両方が左側にありますか? もしそうなら、あなたはそのキャンセルボタンのタイトルを変更して、そのボタンがブール値を選択されていないことを確認し、コードとタイトルを変更することにしてはいけません。 – Akash

+0

@Akash、あなたが私に何を求めているか正確にはわかりません。私はこれを「キャンセル」ではなく「カスタム」システムに変更しようとしました。ボタンのタイトルも変更しましたが、変更はありません。そして、そのボタンがブール値を選択されていることを確認することによって、あなたはどういう意味ですか? – Dave

答えて

0

leftBarButtonItemsは、それはあなたのキャンセルボタンがあなたのビューコントローラのnavigationItemのleftBarButtonItemsに追加されているように聞こえるleftBarButtonItem

よりもわずかに異なるものですが、あなたはあなたのクラスで、それへの参照を持っていません。 IBOutletリファレンスを作成し、編集ボタンと同じ方法で明示的にleftBarButtonItemとして設定することができます。

+0

私はすでにキャンセルボタンのIBOutletを設定しています。ストーリーボードとコードスクリーンショットを含む私の質問への更新を参照してください。 – Dave

0

Facepalm time。私は編集ボタンを明示的に次の行を表示していた別のクラスからメソッドを介してコピーした

:この行を削除する

self.navigationItem.leftBarButtonItem = self.editButtonItem

は、実行時にEDITボタンを削除します。

関連する問題