2016-06-21 12 views
0

SwiftでiOSアプリケーションを構築する基本を学びました。 私は何かしたいが、それを構築する方法がわからない、私は2つの項目 "ホーム"と "アカウント"を持つタブバーコントローラを持っている。ユーザーがUITabBarControllerでViewControllerを交換する方法

私はそれをどのように行うことができますがログインしている場合AccountViewController - ユーザーが にログインしていない場合LoginViewController - : 私は、ディスプレイに「アカウント」をしたいですか? LoginViewControllerまたはAccountViewControllerにリダイレクトするByPassControllerを使用していると思いますか?その後、 "Account"は常にByPassControllerを表示します。しかし、私はいくつかのアドバイスを聞きたい。

ありがとうございます。

答えて

1

まず、AccountViewControllerに2番目のタブを設定します。その後、ユーザーが署名されている場合、ユーザーがログインしていない場合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]; 

    } 
} 

を、と2番目のタブを置き換えますAccountViewController

1

ログイン状態を示すブール値を保持できます。 useがログインしていない場合は、ログインフィールドを持つView Controllerを表示するだけです。

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

そして、ちょうどのログイン時に、それを却下。

self.dismissViewControllerAnimated(true, completion: nil) 
関連する問題