2017-08-10 47 views
1

我有以下設置如何使用rxswift切換editButtonItem?

override func viewDidLoad() { 

    super.viewDidLoad() 

    navigationItem.leftBarButtonItem = editButtonItem 

    navigationItem.leftBarButtonItem?.rx.tap.subscribe(onNext: { [weak self] _ in 

     print("edit tapped") 

     if let isEditing = self?.tableView.isEditing { 

      self?.tableView.setEditing(!isEditing, animated: true) 

     } 

     }).disposed(by: disposeBag) 
} 

問題留給欄按鈕項目不切換自來水。 I.E左邊欄按鈕的文字應從編輯更改爲完成

在onNext方法中更改按鈕標題也不起作用。

+1

我建議不要訂閱editButton上的tap事件,因爲它會刪除它的默認編輯/完成切換行爲。我相信我找到了一個更好的選擇,通過調用:rx.methodInvoked(#selector(UIViewController.setEditing(_:animated :))))。此外,如果您使用的是UITableViewController,則在控制器上調用seEditing而不是TableView是完全可以接受的。 – nmdias

回答

1

您應該致電setEditingself,而不是表視圖。如果selfUITableViewController,這也將改變表視圖​​的編輯狀態。