2011-06-26 72 views
1

我有一个图像在我的RootViewController(从UIImagePickerController中选择),我需要通过导航控制器传递给新的视图。我使用下面的代码将字符串传递到下一个视图:通过UINavigationController传递图像

//Get strings 
NSString *text1 = line1.text; 
NSString *text2 = line2.text; 
NSString *text3 = line3.text; 
NSString *text4 = line4.text; 

//Create an GeneratedViewController and initialise it with given data 
GeneratedViewController *gController = [[GeneratedViewController alloc] initWithNibName:@"GeneratedViewController" bundle:[NSBundle mainBundle]]; 
gController.text1 = text1; 
gController.text2 = text2; 
gController.text3 = text3; 
gController.text4 = text4; 
[self.navigationController pushViewController:gController animated:YES]; 
[gController release]; 
gController = nil; 

如何将图像传递给GeneratedViewController?

谢谢,

杰克

+1

为什么不给GeneratedViewController一个UIImage属性?你说你已经有了图像,所以你可以将它设置为GeneratedViewController的新图像属性。 – pkoning

+0

@BoopMeister,抱歉,应该已经更清楚了,该图像是从RootViewController中的UIImagePickerController中选择的,并保存到变量中。然后我需要将这个选定的图像传送到下一个视图。 –

回答

1

最简单的解决方案是在GeneratedViewController上创建UIImage类型的属性。 然后,在创建并初始化GeneratedViewController之后,但在将其推到navigationController之前,您需要将gController上的图像属性设置为所选图像。

0
  • 控制器上的属性,就像文本设置
  • 在方法,或初始化器
  • 通过通知(NSNotificationCenter)。这是更先进一点。
  • 通过委派,第一个控制器是生成的控制器上的数据源委托。这允许第二个控制器在需要时获得所需的内容。

使用哪种方法取决于如何创建控制器,何时可以更改图像,以及第二个控制器需要多少个不同的数据段 - 一个或两个位,属性正常工作。除此之外,我倾向于使用代表团。