当模态对话框存在时,如何(暂时)在我的视图中禁用导航?

Posted

技术标签:

【中文标题】当模态对话框存在时,如何(暂时)在我的视图中禁用导航?【英文标题】:How do I (temporarily) disable Navigation in my view when modal dialog exists? 【发布时间】:2010-03-05 05:51:14 【问题描述】:

我有一个标准的 UITableView,顶部有一个 UINavigation 栏和标准的后退按钮等。

我有一个弹出“模态对话框”框的按钮,这是一个位于顶部的视图,几乎遮住(但不完全)下面的视图。问题是,按钮(包括“返回”导航按钮)仍然可见,因此可以触摸。

我在 UITableViewController 的view 上尝试过setUserInteractionEnabled:NO,但这似乎不起作用——至少导航项仍然是可触摸的。但 navigationItem 不是视图子类。

还有其他想法吗?遗漏了一些明显的东西?

谢谢。

【问题讨论】:

【参考方案1】:

在类似的情况下遇到了同样的问题: iPhone: how do I set up a clear window-size "blocker view"?

使用吞下事件的透明视图解决了这个问题,它坐在整个窗口中。感觉很笨拙但很管用。

【讨论】:

【参考方案2】:

试试这样的:

[[[tableViewController navigationItem] leftBarButton] setEnabled:NO];

【讨论】:

奇怪的是,没有。这个[[[self navigationItem] backBarButtonItem] setEnabled:NO]; 似乎没有效果。【参考方案3】:

我遇到了类似的问题并使用以下隐藏导航栏:

[self.navigationController setNavigationBarHidden: YES animated:YES];

【讨论】:

以上是关于当模态对话框存在时,如何(暂时)在我的视图中禁用导航?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Twitter Bootstrap 中同时打开两个模态对话框

如何在android中的活动开始时禁用按钮的单击事件检查

单击特定网格视图单元格时淡出网格视图

在模态对话框中显示部分视图结果

当视图控制器以模态方式呈现时,用户可以滚动

在表格中的视图按钮上添加模态