1

这是一个菜鸟问题。我想要将数据从我的 QuizViewcontroller 传递到 QuizModalViewController。我成功地创建了一个普通的模态视图控制器,但是在两者之间传递数据时遇到了问题。下面是我的代码。

测验视图控制器

-(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 回答