@protocol
次のようなものを作成できます。
@protocol MyChildViewControllerDelegate<NSObject>
@optional
- (void)tablView:(UITableView *)tv didSelectRowInChildViewControllerAtIndexPath:(NSIndexPath*)indexPath;
@end
次のようにMyChildViewControllerDelegate
、クラス内のプロパティを作成します。ChildViewController
@synthesize
@property(assign, nonatomic) id<MyChildViewControllerDelegate> delegate;
親クラスのインスタンスを作成するときは、次のようChildViewController
にデリゲートを割り当てます。self
ChildViewController *ch = [[ChildViewController alloc] initWithBlahBlah];
ch.delegate = self;
メソッドを実装しMyChildViewControllerDelegate
ます。
UITableViewDelegate
コールバックを受け取ったときにChildViewController
、デリゲートを通じて親クラスに伝えます。
- (void)tableView:(UITableView *)tView didSelectRowAtIndexPath:(NSIndexPath *)iPath
{
[delegate tablView:tView didSelectRowInChildViewControllerAtIndexPath:iPath];
}
独自に作成する代わりに、MyChildViewControllerDelegate
提供されている Apple を使用することもできますUITableViewDelegate
(使い慣れている場合)。
それが役に立てば幸い :)