2011-12-09 7 views
1

私はちょうど私の頭の中でそれをハッシュする... view controller 1からIBActionが....押されたボタンの間(正確ではないコードのようなものを区別するためにタグを使用してView Controller 2'sviewDidLoadImageView画像を設定すると何かを設定しようとしています):表示制御装置1においてIBActionは2番目のView ControllerでUIImageviewイメージを設定しますか?

:ビューコントローラ2では

-(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"]; 
} 

問題のw IBActionから情報を取得して2番目のView Controllerに渡し、viewDidLoadメソッドで正しいイメージをロードする方法があります。

私はデータをNSStringに変換する例を見ていますが、そのように渡しても、これについてもっと良い方法があるかどうかは本当に不思議でした。

私は今までいくつかのアプリを一緒に置いていましたが、これで数日間は私の頭を傷つけてしまいました。

ヘルプやおすすめのコードは参考になります。正しい方向へのプッシュだけでも。

ありがとうございます!

答えて

1

ボタンをviewController1に押され、このような何か:このコードは、文字列を設定します

- (void)viewDidLoad { 
    ViewController2ImageView.image = [UIImage imageNamed:[[NSUserDefaults 
     standardUserDefaults] objectForKey:@"viewController2SelectedImageKey"]]; 
    //other setup 
} 

このような何かを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 plistのキー(私が使用したキーは@ "viewController2SelectedImageKey"ですが、任意の文字列を使用できます)。これはviewController2によってviewDidLoadメソッドで参照され、文字列をnaとして使用しますイメージファイルの私に。

+0

お客様の歓迎です。アプリケーションの任意の場所からNSUserDefaultsにアクセスできるので、viewController2で表示する画像がアプリの途中で何かを決定する上で重要な場合は、どこでも@ "viewController2SelectedImageKey"にアクセスできます。 –

0

NSString *imageNameプロパティを使用してView Controller 2にファイル名を渡すのはなぜですか?

0

あなたは 1以下のように多くの種類を簡単に行うことができますこんにちは)あなたはメソッド

  • (ID)initWithNibName書くことができる:(NSStringの*)nibNameOrNilバンドル:(NSBundle )nibBundleOrNil andImageName:(NSStringのを)ImageName;

    ライト第2のビュー&第一の視点からの呼び出しと、このmehodとき以下

    • (ID)initWithNibName状の第2のローカル変数にそのとき店でこのメソッド呼び出しこのイメージ名:(NSStringの* )nibNameOrNilバンドル:(NSBundle )nibBundleOrNil andImageName:(NSString)ImageName { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if(self){ //カスタム初期化 //ローカル変数の割り当て imageName = ImageName; } return self;次いで }

とウルコードに渡しUR

  • (ボイド)のviewDidLoad { ViewController2ImageView.image = [UIImage imageNamed:imagenameの]を意味します。 }

2)第二のタイプはsecoundビューでimagenameのVaribaleを作成し@propertyを与え、それを@synthesizeこの下

SecoundView *ObjSecoundView=[[ObjSecoundView alloc] initWithNibName:@"SecoundView" bundle:nil]; 
    [email protected]"Image1.png";//put ur dynamic image name 
    [self.navigationController pushViewController:ObjSecoundView animated:YES]; 

パスでそれを使用してviewdid負荷法で使用以上であります

  • (ボイド)のviewDidLoad以下のよう{ ViewController2ImageView.image = [UIImage imageNamed:imagenameの]。 }
+0

返信いただきありがとうございます! NSUserDefaultsを使って何をしようとしているのかは、これについてもっと効率的な方法と思われます。 –

関連する問題