Iphone IBAction在第二视图控制器中设置UIImageview图像?
我正在尝试设置一些东西,其中来自Iphone IBAction在第二视图控制器中设置UIImageview图像?,iphone,objective-c,ios,xcode,ipad,Iphone,Objective C,Ios,Xcode,Ipad,我正在尝试设置一些东西,其中来自视图控制器1的iAction将在视图控制器2的视图中设置图像视图图像,并使用标签区分按下的按钮。。。。类似于(不是精确的代码…只是在我的脑海中散列出来): 在视图控制器1中: -(IBAction)buttonpressed:(id)sender { if (button.tag == 1) { ViewController2ImageView.image = [UIImage imageNamed:@"image1.png"]; }else if (but
视图控制器1
的iAction
将在视图控制器2的视图中设置图像视图
图像,并使用标签区分按下的按钮。。。。类似于(不是精确的代码…只是在我的脑海中散列出来):
在视图控制器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"];
}
在视图控制器2中:
-(void)viewDidLoad {
ViewController2ImageView.image = [UIImage imageNamed:@"?.png"];
}
问题是如何从iAction
获取信息,以传递给第二个视图控制器,并让viewDidLoad
方法加载正确的图像
我看到过将数据转换为NSString
并以这种方式传递数据的例子,但是我真的想知道是否有更好的方法来实现这一点
到目前为止,我已经能够通过谷歌搜索我的方式将一些应用程序整合在一起,但这让我抓狂了好几天
任何帮助或建议的代码都会很有帮助!即使只是朝着正确的方向推动
谢谢 在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方法中执行以下操作:
-(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"];
}
}
此代码将一个字符串设置为NSUserDefaults列表中的一个键(我使用的键是@“viewController2SelectedImageKey”,但您可以使用任何您喜欢的字符串),viewController2在其viewDidLoad方法中引用该字符串,并将该字符串用作图像文件的名称。在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方法中执行以下操作:
-(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"];
}
}
这段代码将一个字符串设置为NSUserDefaults列表中的一个键(我使用的键是@“viewController2SelectedImageKey”,但您可以使用任何喜欢的字符串),viewController2在其viewDidLoad方法中引用它,并使用字符串作为图像文件的名称。为什么不使用NSString*imageName
属性将文件名传递给View Controller 2?为什么不使用NSString*imageName
属性将文件名传递给View Controller 2?
- (id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle)nibBundleOrNil和ImageName:(NSString)ImageName
在第二个视图中编写此方法&从第一个视图调用,当此方法调用时,将此图像名称存储在第二个局部变量中,如下所示
- (id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle)nibBundleOrNil和ImageName:(NSString)ImageName
{
self=[super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
如果(自我){
//自定义初始化
//局部变量赋值
imageName=imageName;
}
回归自我;
}
然后在你的代码中传递它意味着在你的
- (无效)viewDidLoad{
ViewController2ImageView.image=[UIImage imageName:imageName];
}
2) 第二种类型是在secound视图中创建imageName Varibale,并给出@property和@Synthesis,然后在下面使用它
SecoundView *ObjSecoundView=[[ObjSecoundView alloc] initWithNibName:@"SecoundView" bundle:nil];
ObjSecoundView.imageName=@"Image1.png";//put ur dynamic image name
[self.navigationController pushViewController:ObjSecoundView animated:YES];
传递此消息并在viewdid加载方法中使用,如下所示
- (无效)viewDidLoad{
ViewController2ImageView.image=[UIImage imageName:imageName];
}
您好,您只需使用以下多种类型即可
1) 您可以编写该方法
- (id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle)nibBundleOrNil和ImageName:(NSString)ImageName
在第二个视图中编写此方法&从第一个视图调用,当此方法调用时,将此图像名称存储在第二个局部变量中,如下所示
- (id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle)nibBundleOrNil和ImageName:(NSString)ImageName
{
self=[super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
如果(自我){
//自定义初始化
//局部变量赋值
imageName=imageName;
}
回归自我;
}
然后在你的代码中传递它意味着在你的
- (无效)viewDidLoad{
ViewController2ImageView.image=[UIImage imageName:imageName];
}
2) 第二种类型是在secound视图中创建imageName Varibale,并给出@property和@Synthesis,然后在下面使用它
SecoundView *ObjSecoundView=[[ObjSecoundView alloc] initWithNibName:@"SecoundView" bundle:nil];
ObjSecoundView.imageName=@"Image1.png";//put ur dynamic image name
[self.navigationController pushViewController:ObjSecoundView animated:YES];
传递此消息并在viewdid加载方法中使用,如下所示
- (无效)viewDidLoad{
ViewController2ImageView.image=[UIImage imageName:imageName];
}
欢迎光临。请记住,您可以从应用程序中的任何位置访问NSUserDefaults,因此,如果您在viewController2中显示的图像对于决定应用程序中的其他内容很重要,您可以在任何位置访问@“viewController2SelectedImageKey”。欢迎光临。请记住,您可以从应用程序中的任何位置访问NSUserDefaults,因此,如果您在viewController2中显示的图像对于决定应用程序中的其他内容很重要,您可以在任何位置访问@“viewController2SelectedImageKey”。感谢您的回复!这也适用于我正在尝试使用NSUserDefaults进行的操作,这似乎是一种更有效的方法。谢谢您的回复!不过,这也适用于我正在尝试使用NSUserDefaults执行的操作,这似乎是一种更有效的方法。