2016-05-12 1 views
1

にeditButtonItemを()リンク:スウィフト:編集モード、私が編集モードに私の<code>UITableView</code>を設定するには、どのように動的に編集ボタンを作成する方法を理解IBAction

override func viewDidLoad() { 
    tableView.allowsMultipleSelectionDuringEditing = true 
    tableView.setEditing(false, animated: false) 
    navigationItem.leftBarButtonItem = editButtonItem() 
} 

しかし、ときに私は編集ボタンをタップし、私は新しいボタンがナビゲーションバーに表示されます(つまり、「プラス」/「追加」ボタン)。これを行うにはIBActionを作成する必要があると思いますが、editButtonItem()をアクションにリンクする方法はわかりません。何か案は?

+0

ちょうど 'setEditing:animated:'を上書きしてボタンをそれぞれ追加/削除してください – vadian

答えて

2

アーメドに[OK]を、大きな感謝をし、ヴァディアン彼らのコメントのために、私は働いて得たものは、このでした再び)IF/ELSEステートメントのコードが実行されます。

0

editButtonItem()のデフォルトのアクションを、ビューコントローラで定義された新しい関数をactionプロパティに代入して置き換えることができます。 >完了およびバック - 編集ボタンが押された(と編集から反転している

override func setEditing(editing: Bool, animated: Bool) { 
    // Toggles the edit button state 
    super.setEditing(editing, animated: animated) 
    // Toggles the actual editing actions appearing on a table view 
    tableView.setEditing(editing, animated: true) 

    if (self.editing) { 
     navigationItem.rightBarButtonItem = 
      UIBarButtonItem(barButtonSystemItem: .Add, target: self, 
          action: #selector(clickMe)) 

    } else { 
     // we're not in edit mode 
     let newButton = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: navigationController, action: nil) 
     navigationItem.rightBarButtonItem = newButton 
    } 

} 


func clickMe() 
{ 
    print("Button Clicked") 
} 

通り:

editButtonItem().action = #selector(yourCustomAction(_:)) 

func yourCustomAction(sender: UIBarButtonItem) {} 
+0

返事ありがとうございますAhmed、謝罪しますが、 '#selector'とはどういう意味ですか? – alias235

+0

はこの選択肢をよりよく理解するために参照してください:[http://stackoverflow.com/questions/24007650/selector-in-swift](http://stackoverflow.com/questions/24007650/selector-in-swift) [https://medium.com/swift-programming/swift-selector-syntax-sugar-81c8a8b10df3#.q25ftjr60] (https://medium.com/swift-programming/swift-selector-syntax-sugar-81c8a8b10df3#。 q25ftjr60) –

+0

私はこれをお勧めしません。これは、editButtonItemの組み込みの機能をすべて終了し、それ自体は「編集」から「完了」に切り替わりません。間違いなく@ alias235のようなsetEditingメソッドをオーバーライドしました – Trev14