如何在一个UIViewController中禁用SWRevealViewController的滑动功能

3

如何在一个UIViewController中编程禁用SWRevealViewController滑动,同时允许它在所有其他UIViewController中工作?

我想在我的登录视图控制器中禁用SWRevealViewController,这样用户就不能使用菜单绕过它。

目前,用户可以滑动以显示菜单,然后选择一个项目,进入另一个视图控制器。 我想禁用这个功能。


我认为针对您的特定问题(避免在登录屏幕上出现菜单),更好的解决方案是将SWRevealViewController放置在登录屏幕之后。在我的SO自问自答中(https://dev59.com/h5Pfa4cB1Zd3GeqPDG4K)我展示了一个故事板,展示了如何实现这一点。 - Felipe Ferri
2个回答

9
你只需要禁用特定视图的平移手势。
像这样:
```swift view.isScrollEnabled = false ```
SWRevealViewController *reveal = self.revealViewController;
reveal.panGestureRecognizer.enabled = NO;

0

我最终使用了一个变量,当选择任何菜单项时,强制将相同的UIViewController返回到前台。(这恰好是一个登录页面。) 这是我使用的代码。

这样强制我的登录页面成为活动页面,即使选择了其他菜单项也是如此。唯一的方法是输入用户名和密码才能退出。

因此,从技术上讲,我没有禁用滑动,但这也可以起作用。

Boolean bForceLogin = getMySettingFromDatabase;
if (bForceLogin)
{
    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
    UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"loginviewcontroller"];
    [revealController setFrontViewController:vc animated:YES];
    return;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接