-3

あるViewControllerから別のViewControllerにパラメーターを渡すにはどうすればよいですか(ストーリーボードでViewControllerを定義しました)?putExtraAndroid、または値を入れるバンドルに似たものはありますか?最初のViewControllerからいくつかの値を読み取り、POSTリクエストを行う別のViewControllerに渡す必要があります。

4

3 に答える 3

5

prepareForSegue:sender:ストーリーボードを使用するときに、あるビュー コントローラーから別のビュー コントローラーにデータを渡すための推奨される方法です。識別子をチェックして、目的のセグエであることを確認し、目的のビュー コントローラーへのポインターを取得し、必要なプロパティを設定します。次のようになります。

- (void) prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender
{
    if( [[segue identifier] isEqualToString:@"foo"] ) {
        FooViewController* fooView = segue.destinationViewController;
        fooView.someProperty = self.someProperty;
    }
}

昨年の WWDC のストーリーボード セッションは、まだご覧になっていない方におすすめです。

于 2012-08-19T01:39:09.110 に答える
4

これはとても簡単です。2番目のビューコントローラーでプロパティを作成し、1つのビューコントローラーからこれらのプロパティに値を渡す必要があります

于 2012-08-19T00:11:57.823 に答える
0

他の方法とは別に、プロトコルとデリゲートを使用して、あるコントローラーから別のコントローラーにオブジェクトを渡すことができます。オブジェクト resposeData をコントローラー (クラス) A から B に渡す必要があるとします。以下は、実行できる手順です。

  1. プロトコルを宣言します。

    @protocol NetworkOperationDelegate

    @必要

    -(void) operationCompleted:(id) responseData タグ:(id) タグ;

    -(void) operationFailed:(id) responseData タグ:(id) タグ;

    @終わり

  2. デリゲート クラスを指すクラス A で Id 型のプロパティを宣言します。

    @property (nonatomic, retain) id < NetworkOperationDelegate > operationDelegate;

  3. あなたのカスタム初期化子でself.delegateを初期化するとしましょう:

    -(id) initWithRequest:(NSURLRequest *)request operationDelegate:(id) デリゲート タグ:(id) タグ

     {
    
     self = [super init];
      if (self) {
       self.request = request;
       self.tag = tag;
       self.operationDelegate = delegate;
     }
     return self;
    

    }

  4. 次に、クラスAで定義したいときはいつでもデリゲートでメソッドを呼び出します。クラスAがデータを受信したとき、クラスBに受信したデータを処理させたいとしましょう

  5. クラス B @interface B : NSObject @end にプロトコル メソッドを必ず実装してください。

    @implementation B
    
    -(void) operationCompleted:(id) responseData tag:(id) tag
    {
    
    // imlement code
    

    }

    -(void) operationFailed:(id) responseData タグ:(id) タグ {

     // imlement code
    

    }

    @end
    

お役に立てれば!!!

于 2012-08-19T19:57:57.127 に答える