Segueによる画面遷移を便利にするTKRSegueOptions
移転しました →
4月ぐらいにスライドで見ていいなーと思ったんだけど、最近初めて使ってみてやはり便利だったので整理しておく。
Storyboardでの画面遷移をスマートにやる方法 - TOKOROM BLOG
余談だけどスライドでみたときはTKRIntentって名前だったんだけど、わかりやすさのために名前変えたんですかね。
どんなときに便利かっていうと、個人的にはテーブルビューでセルを選択して次の画面に行きたいときに、選択したセルに関連する情報とかを次のViewControllerに渡したいときかなと思う。
TKRSegueOptionsを使わないときは、ViewControllerを生成してidを渡して画面遷移するっていうやり方をしてた気がする。もっとスマートな方法があったかもしれないが。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { MyViewController* viewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]; viewController.index = indexPath.row; [self.navigationController pushViewController:viewController animated:YES]; }
これがTKRSegueOptionsを使うとこんな感じでいける。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [self performSegueWithIdentifier:@"Design" options:@{@"id":[NSNumber numberWithInteger:indexPath.row]}]; }
画面遷移自体はStoryboardでくっつけたSegueをIdentifier経由で呼べばよくて、移動先でself.segueOptions[@"index"];
みたいに取り出すことができる。
これSDK標準でやって欲しいぐらい便利。使わない手はない。