2016-06-29 1 views
0

問題で数時間苦労しています。基本的に、私は簡単なスウィフトアプリを持っています。こんなふうになります。私の最初のビューコントローラでは、私は情報と "次へ"ボタンでそれらを埋めるために3つのテキストフィールドを持っています。UITextFieldにテキストを保存してロードする

「次へ」ボタンを押すと、新しい「UIViewController」が表示され、「戻る」ボタンが表示されます。戻るボタンを押すと、3つのテキストフィールドで1ページ目に戻ります。

私が欲しいのは、テキストフィールドに情報を入力したら、[次へ]を押してから[戻る]を押すと、その情報でテキストフィールドを埋めたいのです。

私はボタンでビュー間を移動することができましたが、情報を保存できません。少し助けてくれますか?

@IBOutlet weak var txtb1: UITextField! 
@IBOutlet weak var txtb2: UITextField! 
@IBOutlet weak var txtb3: UITextField! 


@IBAction func next(sender: AnyObject) { 
    text1 = self.txtb1.text! 
    text2 = self.txtb2.text! 
    text3 = self.txtb3.text! } 

override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     if (!text1) 
     { 
      txtb1.text = text1 
     } 

    } 
+1

私は両方の次のボタンでアクションを教えてくださいできますか? –

+0

次のボタンをクリックすると、現在の画面が閉じられますか?戻るボタンをクリックすると、その画面を閉じるか、画面を表示するだけです(テキストフィールドと次のボタン)。 – Signare

+0

@ Signign私は、2番目のページの次のボタンで、1番目のView Controllerの新しいインスタンスを作成していて、それを開こうと思っています。VC –

答えて

0

あなたが異なるビューに変数を渡したいと思っているならば、あなたはそのビューコントローラにセグエ前prepareForSegue機能を使用する必要があります。

これにより、ビューコントローラが変数にアクセスできるようになります。

Override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) 
{ 
    if segue.identifier == "segue_name" 
    { 
     let theDestination = segue.destinationViewController as! newViewController 
     theDestination.variable = "testing" 
     theDestination.variable2 = "testing2" 
    } 
} 

その後、あなたの第2のビューコントローラの内部で、あなたが示すように、変数と変数2を宣言する必要があります:

var variable:String! 
var variable2:String! 

これらは、その後、のviewDidLoadメソッド内で第2のビューコントローラで使用することができるようになります。

+0

第1ビューから第2ビューへの情報は必要ありません。私は、最初のビューからの情報をこの方法でローカルに保存することを望みます。私はアプリを起動します(最初のビューから始まります).3つのテキストフィールドをすべて完了し、次へボタンを押し、戻るボタンを押して、3つのテキストフィールドをすべて押して、私が入力した値を取得します。 –

0

私は問題の少し修正することができた、そのボタンはそれに応じてリンクされていないので、関数は実行されていませんでした。ここにコードです:

var text1 = "" 
@IBOutlet weak var txtb1: UITextField! 

@IBAction func next(sender: AnyObject) { 

    text1 = self.txtb1.text! // text1 = "I am taking value" 
} 

// when i press the back button 
override func viewDidLoad() { 
     super.viewDidLoad() 
     if (!numarInmatriculare.isEmpty) 
     { 
      txtb1.text = text1 //here text1 = Null. the value is not saved 
     } 
    } 

値を保存してテキストフィールドに戻したいのですが。

私はまた、静的なvaribilesを使用しようとしましたが、私はエラーでプロペットしています。

static var numar:String = "" 
numar = text1 
//static member 'numar'cannot be used on instance of type 'viewcontroller' 
0

テキストフィールドを使用すると、私は

text1 = self.txtb1.text! 
    text2 = self.txtb2.text! 
    text3 = self.txtb3.text! 

を示す下のあなたには、いくつかのコードを書いた次のボタンをクリックし、次に提出した後、このような場合のために何かをする必要はありませんデータが満たされたら、まずあなたは、コードを削除してくださいテキストフィールドでは、自動的に次のボタンをクリックした後に自動的に保持され、自動的に保持されます。現在のビューがポップしているときは、データの割り当てが解除されます。

関連する問題