2016-06-21 51 views
0

我學會了使用Swift構建iOS應用程序的基礎知識。 我想做點什麼,但我不確定如何構建它,我有一個帶有兩個項目「Home」和「Account」的標籤欄控制器。 我想要的「賬戶」,以顯示: - LoginViewController如果用戶沒有登錄 - AccountViewController如果用戶登錄如何在UITabBarController中交換ViewControllers

我怎樣才能做到這一點? 我想,也許與重定向到LoginViewController或AccountViewController的ByPassController?然後「帳戶」將始終顯示ByPassController。但我想聽取一些建議。

謝謝。

回答

1

首先,設置第二個選項卡的AccountViewController。然後,在tabBarController:didSelectViewController:回調,檢查用戶是否登錄如果用戶沒有登錄,用LoginViewController更換的ViewController:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
{ 
    if ([tabBarController selectedIndex] == 1 && !user.isSignedIn) 
    { 
     //fill an array with all the view controllers in the UITabBarController 
     NSMutableArray *arr = [[NSMutableArray alloc] initWithArray:[tabBarController viewControllers]]; 

     //inistantiate login view controller 
     UIViewController *loginViewController = [[LoginViewController] init]; 

     //replace the second UIViewController in the array with LoginViewController 
     [arr replaceObjectAtIndex:1 withObject: loginViewController]; 

     //set array 
     [tabBarController setViewControllers:arr]; 

    } 
} 

用戶登錄,在以後,隨着更換第二個標籤AccountViewController

1

您可以保留一個布爾值,指出登錄狀態。 如果未使用登錄,則只顯示帶有登錄字段的視圖控制器。

let loginVC = storyboard.instantiateViewControllerWithIdentifier(kMyViewControllerId) as! MyViewController 
self.presentViewController(loginVC, animated: true, completion: nil) 

而就在解僱它在日誌記錄。

self.dismissViewControllerAnimated(true, completion: nil) 
相關問題