我使用Main ViewController和Navigation ViewController。如果用户使用导航,则导航ViewController占用屏幕的80%,而主视图控制器占用另外20%。在这种情况下,用户不应与Main ViewController进行交互。
如何暂时禁用与主ViewController的交互?
编辑:这声明了进一步的问题:
这部分工作正常。现在,如果导航打开,用户无法与MainViewController进行交互,但这会产生另外两个问题:
问题:用户可以在MainView的位置(右侧应用程序的20%)与NavigationView进行交互。用户不应该进行值得下导航控制器(导航)的交互
问题:用户无法拖动20%的MainView来关闭NavigationView并打开MainView完成。
我认为这可能是禁止与MainView下的所有对象进行交互的原因。如果我在另一个ViewController的功能中执行此操作,这是否可行?困难在于,我应该为不同类型的“MainViews”执行此操作。有时它只包含一个TableViewController,有时它包含一组UIButtons,依此类推。
答案 0 :(得分:4)
mainViewController.view.userInteractionEnabled = FALSE
应该适合你。
这会关闭视图以响应触摸。
答案 1 :(得分:0)
现在我想向您展示我的解决方案,也许有人遇到了类似的问题。 (我希望它没关系,我在新帖子中显示这个而不是编辑,否则我无法检查它已解决)
如果MainViewContent不应该与用户交互:
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];
如果MainViewContent可以自由进行交互:
[[self.centerView viewWithTag:1234] removeFromSuperview];