这是一个noob问题。我想要的是将数据从我的QuizView控制器传递到QuizModalViewController.i成功创建了一个普通的模态视图控制器,但在两者之间传递数据时遇到问题。下面是我的代码。
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];
}
答案 0 :(得分: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
文件中声明的属性。
答案 1 :(得分: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;
}
}
希望这有助于某人......
答案 2 :(得分:0)
在类范围内使QuizModalViewController
可用,而不是使用局部变量。
然后在goBackToView:
中,您可以在解除控制器之前访问控制器的内容。
顺便说一下:在您的代码中,您正在泄漏mvid
。在以模态方式呈现它之后将其释放。