0

我有一个UIViewController,我在其中添加了一个子类UITableView作为子视图。

例如

 @interface ViewController : UIViewController

    @interface ItemList : UITableView

ViewController viewDidLoad我创建一个ItemList( itemList) 对象并将其添加到viewcontroller

- (void)viewDidLoad {
 ...
  [self.view addSubview:itemList];
}

其中didSelectRowAtIndexPath一个我无权访问导航控制器,那么我如何将另一个ItemList推到?UITableViewviewcontrollernavigationcontroller

@implementation ItemList
{
 ...
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

        [self.navigationController pushViewController:newViewControllerobject animated:YES];

    }

}
4

2 回答 2

1

创建一个属性,例如:ViewController *mydelegate在 itemList 类中。当您在 ViewController 中添加 itemList 时,viewDidLoad添加以下内容

 itemList.myDelegate = self;

继续前进..on 确实选择了

 @implementation ItemList
@synthesize mydelegate;
    {
     ...
        - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

            [myDelegate.navigationController pushViewController:newViewControllerobject animated:YES];

        }

}
于 2012-11-08T10:57:52.433 回答
1

如果您在 AppDelegate 中定义了第一个 navigationController,您可以使用以下代码找到最上面的 navigationController,然后将 viewController 推送到它上面。

AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication]delegate];
[appDelegate.navigationController.visibleViewController.navigationController pushViewController:newViewControllerobject animated:YES];
于 2012-11-08T11:32:42.790 回答