如何从作为子类的uitableview推送uiviewcontroller

时间:2012-11-08 10:50:10

标签: ios uitableview uinavigationcontroller

我有UIViewController我在其中添加UITableView的子类作为子视图。

e.g。

 @interface ViewController : UIViewController

    @interface ItemList : UITableView
ViewController viewDidLoad中的

我创建了一个ItemListitemList)对象,并将其添加到viewcontroller

的视图中
- (void)viewDidLoad {
 ...
  [self.view addSubview:itemList];
}
<{1}} didSelectRowAtIndexPath中的ItemListUITableView我无法访问导航控制器,因此如何将另一个viewcontroller推送到{{1} }}?

navigationcontroller

2 个答案:

答案 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];