Ios 从popover将UIViewController推送到UINavigationController

Ios 从popover将UIViewController推送到UINavigationController,ios,ios7,uinavigationcontroller,uipopovercontroller,xcode-storyboard,Ios,Ios7,Uinavigationcontroller,Uipopovercontroller,Xcode Storyboard,我在尝试将新的视图控制器推送到现有导航控制器上时遇到问题 我尝试的是在按下导航按钮时显示UIPopoverController,并从“下拉菜单”中选择一个菜单点,将相关的视图控制器推到“主”导航控制器上 我尝试了下面的方法,它给出了一个模态。但我想把视野扩大。 如果选择push而不是modal,结果如下 我还尝试制作一个自定义的UITableViewController(在popover上),并从中尝试了以下代码: -(void) tableView:(UITableView *)tableV

我在尝试将新的视图控制器推送到现有导航控制器上时遇到问题

我尝试的是在按下导航按钮时显示
UIPopoverController
,并从“下拉菜单”中选择一个菜单点,将相关的视图控制器推到“主”导航控制器上

我尝试了下面的方法,它给出了一个模态。但我想把视野扩大。 如果选择push而不是modal,结果如下

我还尝试制作一个自定义的
UITableViewController
(在popover上),并从中尝试了以下代码:

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UINavigationController *dash = [storyboard instantiateViewControllerWithIdentifier:@"dash_nav"];
    UIViewController *students = [storyboard instantiateViewControllerWithIdentifier:@"students"];

    if (indexPath.row == 0) {
       [dash pushViewController:students animated:YES];
//     [[dash navigationController] presentViewController:students animated:YES completion:nil];
    }
    NSLog(@"%@", [dash title]);
    NSLog(@"index = %i", indexPath.row);
}
有什么方法可以完成我想要完成的任务吗?

以下代码:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UINavigationController *dash = [storyboard instantiateViewControllerWithIdentifier:@"dash_nav"];
UIViewController *students = [storyboard instantiateViewControllerWithIdentifier:@"students"];
正在创建太多新实例。您应该使用现有的故事板(
self.storyboard
)和现有的导航控制器。导航控制器需要传递给表视图控制器(您应该使用它,因为脚本没有所需的信息)。我们将此属性称为
originingNavigationController
,它是表视图控制器上的一个新属性

当segue触发以显示popover时,将导航控制器引用设置到目标视图控制器(表视图)中

然后,在
didSelectRowAtIndexPath:
方法中,您只需实例化
students
VC并推送它:

UIViewController *students = [self.storyboard instantiateViewControllerWithIdentifier:@"students"];
[self.originatingNavigationController pushViewController:students animated:YES];

然后,表视图控制器应自行关闭(其弹出框)。

两件事。。首先,您是如何在故事板中创建这些小桌面视图的?第二,如果你使用master detail,你可以使用replace而不是Push,这正是我所需要的!谢谢