2016-10-28 4 views
0

私はUIViewcontrollerと4つのテーブルビューをアプリに持っています。 UIViewController上のボタンをクリックすると、 "Beach"というUItableviewcontiolerが呼び出されます。ユーザーがテーブルのセルをクリックすると、UIViewControllerに戻り、選択されたセルのタイトルがボタンのタイトルとして表示されます。私が抱えている問題は、テーブルビューのノートボタンをクリックしてからセルをクリックすると、前のボタンのタイトルが前のタイトルに戻ります。オリジナルのSWIFTへの再設定タイトル

上記のやり方は、viewcontrllerに "select beach"という変数を "some String"で追加したことです。セルの選択後、変数が変更され、ボタンのタイトルが変更されます。しかし、この方法で問題が発生した場合、ビューが再度読み込まれると(別のテーブルにセグメンテーションされたとき)、「Some String」にリセットされます。

私は今、この問題を抱えています。助けてください!!私はあなたはそれが時間を実行して初期化した後、あなたが表示しようとした文字列がメモリにのみ保存されているように、これは、期待される動作である2-迅速かつXcode7

答えて

0

を使用しています

PS-。あなたが達成しようとしているのは、デバイスに格納されてそこから読み取られるデータが必要です。あなたのための

可能と最も簡単な解決策は、NSUserDefaultsを使用することがあります

let persistenceStoreKey = "MyStringKey" 
let stringToStore = "MyString" 

// Store data 
NSUserDefaults.standardUserDefaults().setObject(stringToStore, forKey: persistenceStoreKey) 
NSUserDefaults.standardUserDefaults().synchronize() 

// Get data 
let myString = NSUserDefaults.standardUserDefaults().stringForKey(persistenceStoreKey) 

NSUserDefaultsは、単純な値を格納するための最良であることに注意してください。デバイスに複雑な構造を保存する場合は、CoreDataや3rdパーティー(データベース抽象化のためのRealmなど)の使用を検討してください。

これが役に立ちます。

+0

答えていただきありがとうございます。私はすべて、store-stringとpersistenceStoreKeyの両方の変数にどのような役割があり、どのような違いがあるのだろうと思います。 @Daniel – Sam

+0

ストア文字列は、基本的に保存したい文字列です。キー文字列は、格納した文字列を取得するために使用する値です。基本的には同じものを使うことができますが、たとえば1000文字の文字列を保存する場合は、短いキーを使用して検索する方が簡単です。 – Daniel

+0

また、ユーザーがNSUserDefultを使用したかどうかを知りたい。私は--- myString == "" {...}を使用してこれを実行しようとしましたが、ビューがロードされてもまだ値をリセットしています。@Daniel – Sam

関連する問題