2011-11-18 93 views
0

好吧,我无法找到UIViewController调用的方法,呈现一个新的视图。iphone工具栏显示视图

我有一个基于UINavigationController的应用程序。一旦我来到一个视图显示对象的细节,我有一个工具栏在底部,所以我可以给用户一些选择。 当他按barButtomItem,我想显示一个新的视图,但不改变导航栏,所以如果我按回按钮,他从详细视图而不是从新的选项。

我知道方法pushViewController,但不工作,因为我想要的。

thx提前!

编辑:如果我打电话 [[self navigationController] pushViewController:loteCompraViewController animated:YES]; 我得到一个新的视图,与新的控制器有关,但它也改变了导航栏,这对我不利。

+0

你是什么意思“pushViewController不起作用”?它有什么作用?你期望它做什么? – occulus

+0

如果我打电话[[self navigationController] pushViewController:loteCompraViewController animated:YES];它显示了一个新的视图,但它也改变了navigationBar和多数民众赞成是我不想要的。 –

回答

0

给你的视图控制器的“视图显示对象的细节”两种方法:isShowingOverlayViewdismissOverlayView。在isShowingOverlayView中,如果您显示“新视图”,则返回YES,因为“他按barButtomItem”。在dismissOverlayView中,隐藏“新视图”。

然后制作你自己的UINavigationController的子类。在你的子类,覆盖popViewControllerAnimated:使用你的对象的详细视图控制器的那些方法,像这样:

- (UIViewController *)popViewControllerAnimated:(BOOL)animated 
{ 
    if ([self.topViewController respondsToSelector:@selector(isShowingOverlayView)] 
     && [(id)self.topViewController isShowingOverlayView]) 
    { 
     [(id)self.topViewController dismissOverlayView]; 
     return nil; 
    } else { 
     return [super popViewControllerAnimated:YES]; 
    } 
} 

使用此子类,而不是标准的UINavigationController。