子视图控制器内的导航堆栈

时间:2014-09-14 12:59:44

标签: ios uinavigationcontroller childviewcontroller

我将UINavigationController置于容器视图中,如此(在全屏UIViewController子类中):

  UIViewController *litteViewController = [[UIViewController alloc]initWithNibName:nil bundle:nil];
  UINavigationController *littleNavigator = [[UINavigationController alloc]initWithRootViewController:litteViewController];

  UIView *containerView = [[UIView alloc]initWithFrame:CGRectMake(100.0, 100.0, 250.0, 320.0)];
  littleNavigator.view.frame = containerView.bounds;

  [self addChildViewController:littleNavigator];

  [containerView addSubview:littleNavigator.view];
  [self.view addSubview:containerView];

  [littleNavigator didMoveToParentViewController:self];

现在这可以按预期工作,littleViewController出现在我希望的顶部有一个导航栏的矩形中。现在让我们说littleViewController内部的一些互动会发生这样的事情

 -(void)someButtonAction:(id)sender{

       UIViewController *secondLittleViewController = [[UIViewController alloc]initWithNibName:nil bundle:nil];
       [self.navigationController presentModalViewController:secondLittleViewController animated:YES];
}

不幸的是,这个后续的控制器最终全屏呈现。现在我已经在popoverControllerssplitViewControllers之前完成了这个操作,并且它们的行为与我想要的完全一样,导航堆栈是在它启动的小矩形内构建的。

如何在任意CGRect中的容器内构建导航堆栈?

1 个答案:

答案 0 :(得分:1)

在iPhone和iPod touch上,显示的视图始终为全屏。所以你需要改变pushViewController

很高兴我能帮忙