如何从popoverController访问navigationController?

时间:2011-12-01 15:24:16

标签: objective-c ios viewcontroller

我正在尝试将新的viewControllernavigationController推送到popoverController,但它对我不起作用。

我打电话给popoverController

PdfDetailViewController *vc=[[PdfDetailViewController alloc] initWithNibName:@"PdfDetailViewController" bundle:nil];
UIViewController* popoverContent = [[UIViewController alloc] init];
UIView* popoverView = [[UIView alloc] initWithFrame:CGRectMake(0,0, 400, 280)];
vc.contentSizeForViewInPopover = CGSizeMake(700, 390);
self.popoverController = [[UIPopoverController alloc] initWithContentViewController:vc];
[self.popoverController presentPopoverFromRect:cell.frame inView:self.tableView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
[popoverView release];
[popoverContent release];

这是我popoverController的代码:

CommentsViewController *commentsViewController = [[CommentsViewController alloc] init];
commentsViewController.index = PdfID;
[self.parentViewController.navigationController pushViewController:commentsViewController animated:YES];
[commentsViewController release];

什么都没发生

请帮帮我......谢谢!

2 个答案:

答案 0 :(得分:1)

UIPopoverController没有NavigationController,除非你自己添加一个。

例如

    MyViewController *myViewController = 
        [[MyViewController alloc]      
            initWithNibName:@"MuViewController" 
                     bundle:[NSBundle mainBundle]]; 


    UINavigationController *navController = 
        [[UINavigationController alloc] 
            initWithRootViewController:myViewController];

    UIPopoverController *popover = 
        [[UIPopoverController alloc] 
            initWithContentViewController:navController]; 

答案 1 :(得分:0)

您应该首先清理代码,以便有意义。现在你正在无缘无故地创建一个名为popoverView的UIView,然后将它扔掉。你只是让自己感到困惑,当你展示出意义代码时,你很难理解你想要完成的事情。

完成后, 你想要完成什么?这条线不起作用的问题是:self.parentViewController.navigationController pushViewController:?如果是这样,我建议将其拆开并进行记录,以确保parentViewControllernavigationController是您认为的对象。