[英]IBAction to set UIImageview image in second View Controller?
我正在尝试设置一些内容,其中来自view controller 1
的IBAction
将使用标签来区分所按下的按钮,从而在View Controller 2's
viewDidLoad
设置ImageView
图像。...类似(不是精确的代码...只是将其散列在其中我的头):
在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
获取信息以传递给第二个视图控制器,并让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方法中执行以下操作 :
- (void)viewDidLoad {
ViewController2ImageView.image = [UIImage imageNamed:[[NSUserDefaults
standardUserDefaults] objectForKey:@"viewController2SelectedImageKey"]];
//other setup
}
这段代码将字符串设置为NSUserDefaults plist中的键(我使用的键是@“ viewController2SelectedImageKey”,但您可以使用任何喜欢的字符串),它由viewController2的viewDidLoad方法引用,并使用该字符串作为图像文件。
为什么不使用NSString *imageName
属性将文件名传递给View Controller 2?
您好,您可以简单地使用以下类型进行多种操作:1)您可以编写方法
(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle )nibBundleOrNil andImageName:(NSString )ImageName;
在第二个视图中写入此方法,然后从第一个视图中调用,然后在该方法调用时将该图像名称存储在第二个本地变量中,如下所示
然后在您的代码中传递它
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加载方法中使用,如下所示
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.