iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど
Cocoa勉強会で、編集中にテーブルのセルを選択可能にする方法は?という質問が出たので試してみた。
Table Viewを選択して、attributes inspectorのTable VewのEditingが"No Selecting During Editing"になっているのを"Single Selecting During Editing"に変更すれば編集中も選択できるようになった。
ただし、編集中も画面遷移してしまった。Storyboardでsegueで画面遷移させている場合、編集中だと画面遷移させないという処理の分岐を実装するにはどうすればいいのだろうか?
UIStoryboardSegueのサブクラスを作成する方法等考えたのだが、もっと簡単な方法は?
これもCocoa勉強会の仲間からアドバイスを貰った。
まず、table view cellに設定されているsegueを削除する。
そして、view controllerにsegueを設定する。
そして、デリゲートのdidSelectRowAtIndexPath:で分岐を書けばよい。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (!self.tableView.editing) {
[self performSegueWithIdentifier:@"showDetail" sender:self];
}
}
一人で仕事をしていると質問する相手がいないので困ってしまうが、Cocoa勉強会の仲間に感謝!