我有UIViewController
我在其中添加UITableView
的子类作为子视图。
e.g。
@interface ViewController : UIViewController
@interface ItemList : UITableView
在ViewController
viewDidLoad
中的我创建了一个ItemList
(itemList
)对象,并将其添加到viewcontroller
- (void)viewDidLoad {
...
[self.view addSubview:itemList];
}
<{1}} didSelectRowAtIndexPath
中的ItemList
是UITableView
我无法访问导航控制器,因此如何将另一个viewcontroller
推送到{{1} }}?
navigationcontroller
答案 0 :(得分:1)
在itemList类中创建一个属性,例如:ViewController *mydelegate
。
在View Controller viewDidLoad
中添加项目列表时,请添加以下内容
itemList.myDelegate = self;
继续前进......确实选择了
@implementation ItemList
@synthesize mydelegate;
{
...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[myDelegate.navigationController pushViewController:newViewControllerobject animated:YES];
}
}
答案 1 :(得分:1)
如果您在AppDelegate中定义了第一个navigationController,则可以使用以下代码查找最上面的navigationController,然后将viewController推送到它上面。
AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication]delegate];
[appDelegate.navigationController.visibleViewController.navigationController pushViewController:newViewControllerobject animated:YES];