モケラ

Tech Sheets

mokelab

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)"
}

実行し、タップすると次のようになります。

一覧に戻る