Мы можем сделать делегат на AbcView
, чтобы мы могли обратиться к viewController представления, который в этом случае равен AbcViewController
. Мы можем установить делегата как:
@interface AbcView : UIView
{
id delegate;
}
@property(nonatomic, assign) id delegate;
Затем в AbcViewController
установите делегата представления следующим образом:
[abcView setDelegate:self];
Теперь в табличном методе используя наш делегат из AbcView как:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[delegate pushOtherView];
}
вызовет - (void)pushOtherView
метод в AbcViewController
, определение которого:
- (void)pushOtherView
{
XyzViewcontroller * xyzViewcontroller = [[[XyzViewcontroller alloc] init] autorelease];
[self.navigationController pushViewController:xyzViewcontroller animated:YES];
}
Но перед использованием этого метода его следует упомянуть в протоколах, иначе он покажет
Warniing:
-pushOtherView 'не найден в протоколе (ах).