Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone IBAction在第二视图控制器中设置UIImageview图像?_Iphone_Objective C_Ios_Xcode_Ipad - Fatal编程技术网

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执行的操作,这似乎是一种更有效的方法。