我正在尝试设置IBAction
来自view controller 1
ImageView
View Controller 2's
图像viewDidLoad
-(IBAction)buttonpressed:(id)sender {
if (button.tag == 1) {
ViewController2ImageView.image = [UIImage imageNamed:@"image1.png"];
}else if (button.tag == 2) {
ViewController2ImageView.image = [UIImage imageNamed:@"image2.png"];
}
图像-(void)viewDidLoad {
ViewController2ImageView.image = [UIImage imageNamed:@"?.png"];
}
使用标记来区分按钮压缩....有点像(不是确切的代码......只是在脑海中挖出来):
在View Controller 1中:
IBAction
在View Controller 2中:
viewDidLoad
问题是如何从NSString
传递给第二个视图控制器并让{{1}}方法加载正确的图像。
我见过将数据转换为{{1}}并以这种方式传递的示例,但我真的想知道是否有更好的方法来解决这个问题。
到目前为止,我已经能够以谷歌的方式将几个应用程序放在一起了,但是这让我在几天后摸不着头脑。
任何帮助或建议的代码都会有所帮助!即使只是推动了正确的方向。
谢谢!
答案 0 :(得分:1)
在viewController1中按下按钮时,请执行以下操作:
-(IBAction)buttonpressed:(id)sender {
if (button.tag == 1) {
[[NSUserDefaults standardUserDefaults] setObject:@"image1.png"
forKey:@"viewController2SelectedImageKey"];
} else if (button.tag == 2) {
[[NSUserDefaults standardUserDefaults] setObject:@"image2.png"
forKey:@"viewController2SelectedImageKey"];
} else {
//set some default string for the image
[[NSUserDefaults standardUserDefaults] setObject:@"yourDefaultImage.png"
forKey:@"viewController2SelectedImageKey"];
}
}
然后在viewController2的viewDidLoad方法中执行类似 this 的操作:
- (void)viewDidLoad {
ViewController2ImageView.image = [UIImage imageNamed:[[NSUserDefaults
standardUserDefaults] objectForKey:@"viewController2SelectedImageKey"]];
//other setup
}
此代码将字符串设置为NSUserDefaults plist中的键(我使用的键是@“viewController2SelectedImageKey”,但您可以使用任何您喜欢的字符串),viewController2在其viewDidLoad方法中引用该字符串并使用该字符串作为图像文件的名称。
答案 1 :(得分:0)
为什么不使用NSString *imageName
属性将文件名传递给View Controller 2?
答案 2 :(得分:0)
嗨您可以使用以下多种类型进行操作 1)你可以编写方法
(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle )nibBundleOrNil andImageName:(NSString )ImageName;
在第二个视图中写下这个mehod&从第一个视图调用,当此方法调用时,将此图像名称存储在第二个局部变量中,如下所示
然后在你的代码中传递它意味着你的
2)第二种类型是在secound视图中创建imageName Varibale并给它@property和@synthesize它,而不是在下面使用它
SecoundView *ObjSecoundView=[[ObjSecoundView alloc] initWithNibName:@"SecoundView" bundle:nil];
ObjSecoundView.imageName=@"Image1.png";//put ur dynamic image name
[self.navigationController pushViewController:ObjSecoundView animated:YES];
传递此信息并在viewdid加载方法中使用,如下所示