我的问题的实际解决方案是以模态方式呈现一个UINavigationController,顶部有一个UINavigationBar,包含一个标题和一个标题为@“Done”的左侧栏按钮,它将关闭模态UINavigationController。
无论出于何种原因,我都无法弄清楚如何成功实现这一点。我知道这不是UINavigationController的传统用法,我确信这是一个简单的解决方案,但我无法弄明白。
我试过的是:
ABPersonViewController *personVC = [ABPersonViewController personControllerWithCard:card];
personVC.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(ClosePeoplePicker)];
testerVCF = [[UINavigationController alloc] initWithRootViewController:personVC];
[self presentViewController:testerVCF animated:TRUE completion:^
{
NSLog(@"Completed");
}];
当我执行此代码时,会显示一个UINavigationController但没有标题且没有完成按钮。
你有什么建议吗?我只是不认为我正在考虑UINavigationContoller的运作方式。
提前致谢。
答案 0 :(得分:2)
问题是你正在设置导航控制器的barButton项目,并且标题位于错误的位置。你应该做的是
答案 1 :(得分:0)
如果您的主视图控制器是UIViewController,那么您应该阅读:
特别是那部分:
- (void) displayContentController: (UIViewController*) content
{
[self addChildViewController:content]; // 1
content.view.frame = [self frameForContentController]; // 2
[self.view addSubview:self.currentClientView];
[content didMoveToParentViewController:self]; // 3
}
- (void) hideContentController: (UIViewController*) content
{
[content willMoveToParentViewController:nil]; // 1
[content.view removeFromSuperview]; // 2
[content removeFromParentViewController]; // 3
}