【问题标题】:iphone toolbar showing viewiphone工具栏显示视图
【发布时间】:2011-11-18 17:27:40
【问题描述】:

好的,我找不到 UIViewController 调用的方法来呈现新视图。

我有一个基于 UINavigationController 的应用程序。一旦我看到显示对象详细信息的视图,我在底部有 1 个工具栏,因此我可以为用户提供一些选项。 当他按下 barButtomItem 时,我想显示一个新视图但不更改导航栏,所以如果我按下返回按钮,他会从详细视图返回,而不是从新选项返回。

我知道 pushViewController 方法,但不能按我的意愿工作。

提前谢谢!

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

【问题讨论】:

  • “pushViewController 不起作用”是什么意思?它有什么作用?你期望它做什么?
  • 如果我调用 [[self navigationController]pushViewController:loteCompraViewController animated:YES];它显示了一个新视图,但它也改变了导航栏,这就是我不想要的。

标签: iphone ios toolbar


【解决方案1】:

为“显示对象详细信息的视图”的视图控制器提供两种方法: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。

【讨论】:

    猜你喜欢
    • 2012-01-07
    • 2015-10-14
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    相关资源
    最近更新 更多