如何使用父级导航控制器以模态方式显示视图控制器?

时间:2010-09-21 23:13:01

标签: iphone uiview uinavigationcontroller uitabbar presentmodalviewcontroller

我在没有UITabBarController的导航堆栈中间实现了一个UITabBar。 UITabBar位于DetailViewController中,它将屏幕的一部分委托给与所选标签元素关联的视图控制器。在通过标签栏选择显示的视图控制器之一内,有一个UIButton需要以模态方式显示视图。我尝试了[self presentModalViewController:modalNavController animated:YES];,但新的导航栏隐藏在父控制器DetailViewController的导航栏下方。所以我认为我需要做的是使用父级的导航控制器以模态方式显示视图,以便新导航栏位于DetailViewController导航栏的ON TOP。

我知道这是可能的,因为我在DetailViewController中有广告,点击添加可以获得所需的结果,但我无法合并该代码。我也可以从DetailViewController而不是subView中显示UIButton,但是我需要使用这个模式几次,所以我宁愿不必使用非正统的黑客那样。

谢谢!

修改

我已经尝试将新视图添加到导航控制器,然后像这样呈现导航控制器:

WriteReviewController *newReview = [[WriteReviewController alloc] initWithNibName:@"WriteReviewController" bundle:nil];
UINavigationController *modalNavController = [[UINavigationController alloc] initWithRootViewController:newReview];
// This is intended to be presented in another view controller class
modalNavController.navigationBar.barStyle = UIBarStyleDefault;  
[self.parentViewController presentModalViewController:modalNavController animated:YES]; 
[modalNavController release];

1 个答案:

答案 0 :(得分:0)

自我子类化UIViewController还是别的什么?我用这种方式用导航控制器成功完成了一个视图,虽然我通常不用笔尖来做。看看你是否成功先推出视图,然后尝试使用mallodView。

我还建议使用委托方法来实现它。虽然对你正在做的事情没有必要,你会发现你以后会遇到更少的问题,并且可能被认为是“正确的”做事方式。