0

UIContainerViewから別の にデータを取得するのに苦労していますUIContainerView。例: と の 2 つのコンテナーがcalculatorContainerありdisplayResultContainerます。したがって、「=」ボタンを押して結果を計算すると、displayResultContainer. セグエ メソッドとparentViewControllerアクセスでさまざまなオプションを既に試しましたが、まだ運がありません。

4

4 に答える 4

1

デリゲートを使用します。

手順:

  1. 最初の UIContainerView から、親ビュー コントローラーへのデリゲート メソッドを呼び出します。

  2. 次に、parentview コントローラーは値を 2 番目の UIContainerView に渡します。

于 2014-07-07T09:15:42.797 に答える
0

これは簡単な方法ですが、まず、この方法が逆方向ではなく順方向フローで機能することを知っておく必要があります (逆方向フローでは、デリゲートと呼ばれるものが必要になります)。

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;
}

そして、それはあなたの結果を表示します。それが役立つかどうかはわかりませんが、これがあなたがそれを実行できる方法であるというイメージが確実に得られます. それが役に立てば幸い。

于 2014-07-07T09:07:24.840 に答える