UITableViewで行タップ時のイベントを処理する
最終更新日:2015-05-23
行をタップした時のイベントを処理するには、次の3ステップで行います。
- UITableViewのdelegateを設定する
- ViewControllerにUITableViewDelegateを実装する
- tableView:didSelectRowAtIndexPathメソッドを実装する
では、順にやってみましょう。
delegateを設定する
UITableViewを選び、右上のConnections inspectorでdelegateを探し、ViewControllerにひも付けます。これで、UITableViewに対するイベントをひも付けたViewControllerで扱えます。
ViewControllerにUITableViewDelegateを実装する
dataSourceの指定と同様に、ViewControllerにUITableViewDelegateをつけます。
class MainListViewController : UIViewController, UITableViewDataSource, UITableViewDelegate {
// 中身は省略
}
tableView:didSelectRowAtIndexPathメソッドを実装する
リストの行がタップされると、tableView:didSelectRowAtIndexPathメソッドが呼ばれるので、これを実装します。ここでは動作確認用としてタップされたセクションの位置と、セクション内での位置(上から何番目か)をタイトルに表示しています。
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
self.navigationItem.title = "Selected \(indexPath.section)-\(indexPath.row)"
}
実行し、タップすると次のようになります。