0

まず、ストーリーボードを使用しています。私は最初に1つのクラスによって制御されるビューコントローラーを作成しました。このビューには、ユーザーが数字を入力するテキストフィールドがあり、ボタンはモーダルを使用して、ユーザーを「1」と「2」、「1」の2つのアイテムを持つタブバーコントローラーに移動します" と "two" は別のビューコントローラー (同じクラスによって制御される) に移動しますが、どちらもラベルが付いているため、このラベルはユーザーが最初のビューでテキストフィールドに入力した値を提示する必要があります...私はその方法しか知りませんそれによって:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setInteger:[mytextfield.text intValue] forKey:@"integerKey"];

1 つのクラスで、および:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSInteger mynumber = [prefs integerForKey:@"integerKey"];

NSString *mystring = [[NSString alloc] initWithFormat:@"%i", mynumber];
mylabelonone.text = mystring;
mylabelontwo.text = mystring;

他のクラスでは…

しかし、シミュレーターでテストし、「1」に移動するボタンをクリックすると、ラベルは空ですが、「2」に移動するアイテムをクリックすると、ラベルが正確な番号で表示されます!

タブバーコントローラーで「1」と「2」の順序を変更しようとしましたが、「2」で問題が発生し、1 は完璧です!

何が起こるかわかりません...

4

1 に答える 1

0

Table View Controller は興味深い方法で動作します。タブを切り替えるときは、 viewWillAppearやなどの方法でviewWillDisappear

したがって、問題は、投稿されたコード行をどこに置くかになります。そのコードは機能しますが、ユーザーが別のタブをタップする前に最初のコードが実行され、コードの 2 番目の部分が最初のコードの後に​​実行される場合に限ります。

– tabBarController:shouldSelectViewController:tabBarController:didSelectViewController:

もう 1 つの方法は、ビューをインポートしてから、最初のビューにいる間に 2 番目のビューから変数を設定することです。

于 2012-07-17T02:36:05.957 に答える