Apple のガイドに従ってカスタム コンテナー ビュー コントローラーを作成します。つまり、セグエは使用しません。ChildVC から ParentVC にデータを送信するには、次のスキーマを使用します。
ChildVC.h内
typedef void (^ActionBlock)(NSUInteger);
@property (nonatomic, copy) ActionBlock passIndexToParent;
次に、ParentVC.m viewDidLoadで
childVC.passIndexToParent=^(NSUInteger imageIndex){
//do some cool stuff
}
ChildVC には TableView が含まれており、クリックするボタンはテーブルのセルにあるため、次の手法を使用してクリックされた行のインデックスを取得します
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//…
//target action
[cell.myImageButton addTarget:self action:@selector(getIndexOfTapped:) forControlEvents:UIControlEventTouchUpInside];
//…
return cell;
}
- (void) getIndexOfTapped:(id)sender
{
NSLog(@“X image tap confirmed");
CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition];
if (indexPath != nil)
{
NSLog(@"INDEX of X image tapped is %ld",(long)indexPath.row);
self.passIndexToParent(indexPath.row);//Thread 1: EXC_BAD_ACCESS(code=1, address=0X10)
}
}
プログラムを実行すると、
Thread 1: EXC_BAD_ACCESS(code=1, address=0X10)
ライン用
self.passIndexToParent(indexPath.row);
これ以上のエラー データはありません。この問題を解決する助けはありますか?