好的,我找不到UIViewController调用的方法,它提供了一个新的视图。
我有一个基于UINavigationController的应用程序。一旦我来到一个显示对象细节的视图,我在底部有一个工具栏,所以我可以给用户一些选项。 当他按下barButtomItem时,我想显示一个新视图但不更改导航栏,所以如果我按下后退按钮,他会从详细视图返回而不是从新选项返回。
我知道方法pushViewController但不能正常工作。
提前thx!编辑:如果我打电话,只是为了更清楚一点 [[self navigationController] pushViewController:loteCompraViewController animated:YES]; 我得到了一个与新控制器相关的新视图,但它也改变了导航栏,这对我来说并不好。
答案 0 :(得分:0)
为视图控制器提供“视图显示对象的详细信息”两种方法:isShowingOverlayView
和dismissOverlayView
。在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。