禁用单个ViewController的后退导航

时间:2016-10-30 10:16:33

标签: ios xcode uinavigationcontroller uitabbarcontroller segue

我有以下风险投资:

Interface Builder

中心的VC是"登录"如果用户被授权,它只是将用户重定向到标签栏控制器。

我想禁用从TabBarController中的任何VC返回登录VC(使用"返回"按钮并滑动)。

如何实现这一目标?

3 个答案:

答案 0 :(得分:3)

要禁用后退按钮和向后滑动功能,请将此行添加到viewDidLoad方法中:

self.navigationItem.leftBarButtonItem = nil;
self.navigationItem.hidesBackButton = true;
self.navigationController?.navigationItem.backBarButtonItem?.isEnabled = false;
self.navigationController!.interactivePopGestureRecognizer!.isEnabled = false;

答案 1 :(得分:1)

实际上,此案例的最佳做法是以模态方式显示登录视图控制器,并在用户登录时将其关闭。

MainViewController.m

viewWillAppear{
   [super viewWillAppear];
   if (!loggedIn){
       //present login view controller
   }
}

-(void)userDidLoggedIn{//delegate called after user successfully logged in
   [self dismissViewControllerAnimated:YES completion:nil];
}

如果您想保持此行为,请使用此

目标-C:

self.navigationItem.hidesBackButton = YES;

夫特:

self.navigationItem.hidesBackButton = true

答案 2 :(得分:0)

self.navigationItem.hidesBackButton = YES;