我正在尝试设置一些东西,其中来自 view controller 1
的 IBAction
将在 View Controller 2 中设置
ImageView
图像viewDidLoad
使用标签来区分按下的按钮......类似(不是确切的代码......只是在我的脑海中散列):
在 View Controller 1 中:
-(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"];
}
在 View Controller 2 中:
-(void)viewDidLoad {
ViewController2ImageView.image = [UIImage imageNamed:@"?.png"];
}
问题是如何从 IBAction
获取信息以传递给第二个 View Controller 并让 viewDidLoad
方法加载正确的图像。
我看过将数据转换为 NSString
并以这种方式传递的示例,但是我真的很想知道是否有更好的方法来解决这个问题。
到目前为止,我已经能够通过将几个应用程序放在一起来 Google 搜索我的方法,但这让我挠了挠头好几天了。
任何帮助或建议的代码都会有所帮助!即使它只是朝着正确方向的插入。
谢谢!
最佳答案
当在 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 方法上引用该字符串并将该字符串用作图像文件的名称。
关于iphone - IBAction 在第二个 View Controller 中设置 UIImageview 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8440468/