2

我使用 Main ViewController 和 Navigation ViewController。如果用户使用 Navigation,Navigation ViewController 会占据屏幕的 80%,而 Main ViewController 会占据另外 20%。在这种情况下,用户不应与主 ViewController 交互。

如何暂时禁用与主 ViewController 的交互?


编辑:这声明了进一步的问题:

这部分工作正常。现在,如果导航打开,用户将无法与 MainViewController 交互,但这会产生另外两个问题:

问题:用户可以在MainView的位置(右侧20%的App)与NavigationView交互。用户不应该进行值得较低 NavigationController (Navigation) 的交互

问题:用户无法拖动 MainView 的 20% 来关闭 NavigationView 并打开 MainView 完成。

我认为这可能是禁用与 MainView 下分层的所有对象交互的原因。如果我在另一个 ViewController 的功能中执行此操作,这可能吗?困难在于,我应该为不同类型的“MainViews”执行此操作。有时它只包含一个 TableViewController,有时它是一组 UIButtons,等等。

4

2 回答 2

6

mainViewController.view.userInteractionEnabled = NO应该为你工作。

这会关闭视图对触摸的响应。

于 2013-04-11T12:03:34.780 回答
0

Now i like to show you my Solution, maybe someone got an similar problem. (I hope its ok, that i show this in a new Post and not an Edit, otherwise i cant check it as solved)

If the MainViewContent shouldn't be user interacted:

CGRect viewSize = self.centerView.frame;
UIView *disableInteractionView = [[UIView alloc] initWithFrame:CGRectMake(viewSize.origin.x, (viewSize.origin.y + 44.0), viewSize.size.width, (viewSize.size.height - 44.0))];
disableInteractionView.backgroundColor = [UIColor clearColor];
disableInteractionView.tag = 1234;
[self.centerView addSubview:disableInteractionView];

If the MainViewContent is free for interaction:

[[self.centerView viewWithTag:1234] removeFromSuperview];
于 2013-04-11T15:06:22.360 回答