UIContainerView
から別の にデータを取得するのに苦労していますUIContainerView
。例: と の 2 つのコンテナーがcalculatorContainer
ありdisplayResultContainer
ます。したがって、「=」ボタンを押して結果を計算すると、displayResultContainer
. セグエ メソッドとparentViewController
アクセスでさまざまなオプションを既に試しましたが、まだ運がありません。
4 に答える
デリゲートを使用します。
手順:
最初の UIContainerView から、親ビュー コントローラーへのデリゲート メソッドを呼び出します。
次に、parentview コントローラーは値を 2 番目の UIContainerView に渡します。
これは簡単な方法ですが、まず、この方法が逆方向ではなく順方向フローで機能することを知っておく必要があります (逆方向フローでは、デリゲートと呼ばれるものが必要になります)。
View 1 = calculator
View 2 = result display.
view2 でテキスト フィールドとNSString
その.h
ファイルを取得します。
@property(nonatomic,strong) NSString *myResult; //to contain the result
@property(nonatomic,strong) IBOutlet UITextfield *myResultText; // to display the result
最初のビュー (view1) で入力を取得し、(追加 +) などのボタンを追加します。
@property(nonatomic,strong) IBOutlet UIButton *addition;
そのアウトレット(ボタン)をView Controllerに接続します。次に、そのボタンのメソッドを追加して、そのボタンに接続します。
-(int)addFunc;
次に、最初のビューで既に作成した 2 つのテキスト フィールド (input1TextField
およびinput2TextField
)からユーザー入力を取り込みます。
addFunc
書き込みの内側:
(int)addFunc{
int input1,input2,result;
input1 = self.input1TextField.text;
input2 = self.input2TextField.text;
result = input1+input2;
return result;
}
メソッド内に次のようにIBaction
記述します。
-(IBAction)myIbaction{
[self performSegueWithIdentifier @"seguename", sender :self]; // set the segue name and fill it here.
SecondViewController * sec = [segue destinationViewController];
int result = [self addFunc];
sec.myResult = (NSString)result;
}
メソッドの 2 番目のビュー (view2) で、次のようにviewDidLoad
記述します。
-(void)viewDidLoad{
self.myResultText = self.myResult;
}
そして、それはあなたの結果を表示します。それが役立つかどうかはわかりませんが、これがあなたがそれを実行できる方法であるというイメージが確実に得られます. それが役に立てば幸い。