子视图控制器中的导航堆栈
Posted
技术标签:
【中文标题】子视图控制器中的导航堆栈【英文标题】:navigation stack within child view controller 【发布时间】:2014-09-14 12:59:43 【问题描述】:我将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];
不幸的是,这个后续的控制器最终会全屏显示。现在我已经在 popoverControllers
和 splitViewControllers
内部完成了这个操作,它们的行为完全符合我的要求,导航堆栈构建在它开始的小矩形内。
如何在容器内的任意 CGRect 中构建导航堆栈?
【问题讨论】:
iPhone 还是 iPad? ios 版本? 谢谢伙计。我正在寻找的代码应该适用于任何 iOs 设备 >= iOs5(这是 addChildViewConroller: stuff 所在的位置) 在 iPhone 和 iPod touch 上,呈现的视图始终是全屏的。所以你需要更改为 pushViewController 哦,是的!哇谢谢不敢相信我忘记了那个。非常感谢,你会回答吗? 【参考方案1】:在 iPhone 和 iPod touch 上,呈现的视图始终是全屏的。所以你需要更改为 pushViewController
很高兴我能帮上忙
【讨论】:
是的!谢了哥们。 pushViewController: animated: 一直存在,我不认为我真的需要它。非常感谢以上是关于子视图控制器中的导航堆栈的主要内容,如果未能解决你的问题,请参考以下文章