0

Ich habe folgende VCs:deaktivieren zurück Navigation für einzelne Viewcontroller

Interface Builder

VC im Zentrum ist „Login“ -Bildschirm, es Benutzer auf die Tab-Leiste Controller nur leitet, wenn der Benutzer autorisiert ist.

Ich möchte zurück zu Login VC von jedem VC in TabBarController (mit "Zurück" -Taste und Swipe) gehen.

Wie dies zu erreichen?

Antwort

1

Eigentlich die beste Praxis für diesen Fall ist Login-View-Controller modal zu präsentieren und sie entlassen, wenn der Benutzer angemeldet ist.

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]; 
} 

Und wenn Sie möchten, um dieses Verhalten zu hält dann Mit diesem

Objective-C:

self.navigationItem.hidesBackButton = YES; 

Swift:

self.navigationItem.hidesBackButton = true 
0
self.navigationItem.hidesBackButton = YES; 
+0

Aber diese Swipe deaktivieren nicht? – arts777

+0

Suchen Sie nach "Wie Sie die Zurückwischgeste in UINavigationController auf iOS 7 deaktivieren", finden Sie viele Lösungen. –

1

für beide Zurück-Taste deaktivieren und Swipe zurück verfügen diese Zeilen zu Ihrem viewDidLoad Methode hinzufügen:

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