以下のコードでは、 から に直接セグエを設定しようとしてUIViewController
いDetailViewController
ます。私は通常、からのセグエを行いUITableViewCell
ます(より明確だと思います)が、今回は、ViewController
使用から直接行ってみたかっただけです-tableView:didSelectRowAtIndexPath:
私の質問は次のとおりです。ソリューションUITableViewCell
indexPath
内の fromにアクセスする必要がある状況に到達したのは、 viaを送信することでした。通常、送信者をここに設定します。周りを見回しましたが、これへの参照が見つかりません。送信者を使用してindexPathを渡すことが許容されるかどうかに興味がありますか? 私はそれが確かであると確信しており、以前どこかでできることを読んだことがあると確信していますが、今はそれへの参照を見つけることができません.-prepareForSegue:sender:
indexPath
sender
self
// ------------------------------------------------------------------- **
// DELEGATE: UITableView
// ------------------------------------------------------------------- **
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"%s", __PRETTY_FUNCTION__);
[self performSegueWithIdentifier:@"SEGUE_TWO" sender:indexPath];
}
// ------------------------------------------------------------------- **
// SEGUE: ViewController_ONE > DetailViewController
// ------------------------------------------------------------------- **
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSLog(@"%s", __PRETTY_FUNCTION__);
if([[segue identifier] isEqualToString:@"SEGUE_TWO"]) {
NSUInteger cellRow = [(NSIndexPath *)sender row];
DetailViewController *destinationController = [segue destinationViewController];
[destinationController setDataString:[[self dataList] objectAtIndex:cellRow]];
}
}
編集:この場合、私が探していたのは
NSIndexPath *indexPath = [[self tableView] indexPathForSelectedRow];
基本的に、送信者パラメータを介して渡す必要なしにindexPath
入る方法( )-performForSegue:sender:
-performSegueWithIdentifier:sender: