当视图控制器以模态方式呈现时,用户可以滚动
Posted
技术标签:
【中文标题】当视图控制器以模态方式呈现时,用户可以滚动【英文标题】:User can scroll when viewcontroller is presented modally 【发布时间】:2016-04-18 14:45:27 【问题描述】:在我的应用中,有一个包含 5 个视图控制器的大滚动视图。
有 4 个视图控制器以模态方式显示视图控制器
使用其中三个,当模态显示时我无法滚动到其他视图控制器(这就是我想要的)。在这 3 个视图控制器中,我在用户点击按钮时呈现模式
但是在第四个中,当用户从 UITableView 中点击一个单元格时,我以模态方式显示视图控制器,并且当显示模态时,用户可以滚动到其他视图控制器。我不希望这种情况发生,我该如何阻止它?
唯一的区别是我的代码中有一个为segue做准备
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
NSIndexPath *indexPath = [self.userTableView indexPathForCell:sender];
GSBConversationViewController *destVC = [segue destinationViewController];
GSBChatUsers *selectedUser =[chatUsers objectAtIndex:indexPath.row];
NSString *userName = selectedUser.name;
NSLog(@"User selected: %@", userName);
destVC.title=userName;
上面的代码用于将单元格上显示的名称传输到模态视图控制器。
【问题讨论】:
【参考方案1】:为了防止用户通过视图触摸,您可以在您的 destVC 类中添加:
- (void) viewWillAppear:(BOOL)animated
[super viewWillAppear:animated];
self.view.userInteractionEnabled = true;
或者如果使用 .xib 或 storyboard,只需选择 destVC 视图并在右栏中选中 User Interaction Enabled
【讨论】:
以上是关于当视图控制器以模态方式呈现时,用户可以滚动的主要内容,如果未能解决你的问题,请参考以下文章
当视图控制器从 nib 文件加载时,以模态方式在当前上下文中呈现视图控制器