1

これは初心者の質問です。QuizViewcontroller から QuizModalViewController にデータを渡したいのですが、通常のモーダル ビュー コントローラーの作成には成功しましたが、2 つの間でデータを渡すときに問題が発生しました。以下は私のコードです。

QuizViewController

-(IBAction)button3Clicked:(id)sender
{
  QuizModalViewController *mvid=[[QuizModalViewController alloc]initWithNibName:@"QuizModalViewController" bundle:nil];
mvid.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:mvid animated:YES];
}

QuizModalViewController

- (IBAction)goBackToView
{
[self dismissModalViewControllerAnimated:YES];
//[controller loadQuestion:currentQuestionIndex+1];
}
4

3 に答える 3

4
-(IBAction)button3Clicked:(id)sender
{
  QuizModalViewController *mvid=[[QuizModalViewController alloc]initWithNibName:@"QuizModalViewController" bundle:nil];
mvid.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
mvid.theDataYouWantToPass = theData; // this is how you do it
[self presentModalViewController:mvid animated:YES];
}

ファイルtheDataYouWantToPassで宣言されたプロパティでなければならないことに注意してください。QuizModalViewController.h

于 2012-07-12T12:34:23.607 に答える
2

-(void)prepareForSegue:... - メソッドを使用して、コントローラー間でデータを共有することもできます。

例えば:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

   if ([segue.identifier isEqualToString:@"Your_Identifier"]) {

     TestViewController *controller = [segue destinationViewController];

     NSArray *array = [[NSArray alloc] initWithObjects:@"",nil];

     controller.objectInTestViewController = array;

   }
}

これが誰かに役立つことを願っています....

于 2012-07-12T13:16:08.750 に答える
0

ローカル変数をQuizModalViewController使用する代わりに、クラス スコープで使用できるようにします。次にgoBackToView:、コントローラーを閉じる前に、コントローラーのコンテンツにアクセスできます。

ところで:あなたのコードでは、あなたは漏れていますmvid。モーダルに提示してから解放してください。

于 2012-07-12T12:32:16.867 に答える