2017-05-19 22 views
0

ビュー間でデータを使用したいが、タブバービューコントロールがある。実際に私の最初のビューのログインビュー私は "access_token"と私は正常にログインタブバーコントロールの最初のビューを渡すことができますが、私はWebサービスから別のデータを取得するための2番目のタブバービューでアクセストークン文字列を使用したい場合。どのように私はタブバーのコントローラの2番目のビューでアクセストークン文字列を得ることができますか?タブバーのビューコントローラでビューコントロール間で共有データを使用する方法

self.strSuccessful = json["acces_token"] as? String 

私の2番目のビュー

class SalesVC: UIViewController { 
    var strAccesToken: String! 
    } 

私の最初の(最初のビューコントローラではないinculudeタブバーためのログイン画面)

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 

    let salesViewController = segue.destination as! SalesVC 

    salesViewController.strAccessToken = strSuccessfulAccesToken 


} 
+0

:http://stackoverflow.com/a/27619420/1630618タブバーに値を設定したい各ビューコントローラで

vacawama

答えて

0

最も簡単な解決策は、あなたはUserDefaultsを使用することができますですアクセストークンをLoginControllerに保存した後、SecondTabControllerでユーザーデフォルトからアクセストークンを取得します。 SecondTabController

UserDefaults

UserDefaults.standard.set(strSuccessfulAccesToken, forKey: "AccessToken") 

で保存アクセストークンは、ユーザーのデフォルトからアクセストークンを取得します。

if let accessToken = UserDefaults.standard.string(forKey: "AccessToken") { 
    print(accessToken) 
} 

手動この方法のようLoginControllerprepareForSegueにアクセストークンを設定し、その後LoginControllerからアクセストークンを渡すしたい場合。一般的なケースでは

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    let tabbar = segue.destination as! UITabBarController 
    if let salesVC = tabbar.viewControllers[1] as? SalesVC { 
     salesVC.strAccessToken = strSuccessfulAccesToken 
    } 
} 
0

あなたが(例えば、UIの好みのような)単純なデータを保存するためにUserDefaultsを使用することができますが、あなたが言及しているアクセストークン、およびユーザーアカウントを保護したい場合、あなたは注意する必要がありますし、 Keychainのような安全なストレージを選択します。

覚えておいてください。UserDefaultsは単純なXMLファイルであり、デバイスにアクセスできる人は誰でも読むことができます。

Thisは、私はあなたがタブバーコントローラ内の異なるビューコントローラ間でデータを転送する方法を求めていると思いセキュアなiOSのユーザーデータ

0

についての良いチュートリアルです。

class ItemTabBarController: UITabBarController { 
    var allTags: [TagData] = [] 

    override func viewDidLoad() { 
     print("ItemTabBarController.viewDidLoad") 
    } 
} 

はストーリーボードでタブバーのためのカスタムクラスプロパティは「ItemTabBarController」であることを確認してください:

は、データを保持するために、タブバーのクラスと変数を定義します。これは私がそれをやった方法です関連

func configureItemTabBarController() { 
     let itemTabBarController = self.tabBarController as! ItemTabBarController 
     self.viewModel.allTags = viewModel.configureAllTags() 
     itemTabBarController.allTags = self.viewModel.allTags 
    }