問題描述:
創建了一個視圖CategoryTableView,繼承UIView。CategoryTableView包含了一個UITableView。我將CategoryTableView 作為子類添加到HomeViewController 中,HomeViewController 是UIViewController的子類。目前,我需要在didSelectRowAtIndexPath 執行時推入一個新的controller。但是在CategoryTableView中怎麼推入或顯示另一個視圖控制器?
不能在CategoryTableView去導航控制器。
解決方案:
CategoryTableView.h
[plain]
@property (retain, nonatomic) parentViewController *parent; //create one property for parent view like this
@property (retain, nonatomic) parentViewController *parent; //create one property for parent view like this
CategoryTableView.m
[plain]
@sythesize parent;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[parent.navigationController . . .]; // preform action
//OR..
[parent presentModalViewController: . . .]; // present modal view
}
@sythesize parent;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[parent.navigationController . . .]; // preform action
//OR..
[parent presentModalViewController: . . .]; // present modal view
}
parent.m
[plain]
//while calling your CategoryTableView assign self to your parent object
CategoryTableView *tblView = [CategoryTableView alloc] init];
tblView.parent = self;
//while calling your CategoryTableView assign self to your parent object
CategoryTableView *tblView = [CategoryTableView alloc] init];
tblView.parent = self;