-2

重複の可能性:
iOS - 変数をビュー コントローラーに渡す

2 つの Viewcontrollers (ViewController1 と ViewController2) があり、ViewController1 から ViewController2 に IBAction と共に String 値を渡したいと考えています。ViewController2 の ViewDidLoad メソッドで NSString (*check) 値を読み取ろうとしていますが、null 値が返されます。

助けてください。よろしくお願いします。

// ViewController1

@interface ViewController1 : UIViewController {

        IBOutlet UIButton *btn1;
        IBOutlet UIButton *btn2;
        NSString *check;
    }
#import "ViewController.h"

-(IBAction)buttonClicked:(id)sender {

    check = [[NSString alloc] init];

    if (btn1.tag == 0) {
        check = @"foo";
        NSLog(@"%@",check);    
    }
    if (btn2.tag == 1) {
        check = @"bar";
        NSLog(@"%@",check);
    }
} 

私の2番目のView Controllerで、

#import <UIKit/UIKit.h>

@class ViewController1;

@interface ViewController2 : UIViewController {

    ViewController1 *viewCon;
}

@property(nonatomic,retain) ViewController *viewCon;

//.m

#import "ViewController2.h"
#import "ViewController1.h"

@synthesize viewCon,

 - (void)viewDidLoad
{
    ViewController *myVC = [[ViewController alloc] init];
    NSLog(@"  Label  %@",myVC.check);
    [super viewDidLoad];
}
4

3 に答える 3

2
-(IBAction)buttonClicked:(id)sender {

   //check = [[NSString alloc] init]; -- NO Need

    if (btn1.tag == 0) {
        check = @"foo";
        NSLog(@"%@",check);    
    }
    if (btn2.tag == 1) {
        check = @"bar";
        NSLog(@"%@",check);
    }

  ViewController2 *obj = [[ViewController2 alloc] initWithNibName:@"ViewController2"];
  [obj setCheck:check];
  //push to ViewController2
  [obj release];

}

2 番目のビュー コントローラーで、

#import <UIKit/UIKit.h>

@interface ViewController2 : UIViewController {

        NSString *check;
}
@property (nonatomic, retain) NSString *check;


//.m

#import "ViewController2.h"

@synthesize check;


 - (void)viewDidLoad
{
    NSLog(@"  Label  %@",check);
}
于 2012-09-15T11:08:22.007 に答える
2

インスタンス ofViewController2 の後にドット演算子を使用して、ViewController1 から ViewController2 にデータを渡します。

ViewController2 にデータを渡したいので、ViewController2 に NSString *strCheck のプロパティを作成します。

ViewController1のボタンのクリックイベントに

-(IBAction)buttonClicked:(id)sender {
{

 .......
 .......

 ViewController2 *objViewController2 = [ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil];
 objViewController2.strCheck = check; //ViewController1's value to ViewController2

}
于 2012-09-15T10:58:09.253 に答える
1

このリンクを参照してください -
iOS - Passing variable to view controller
私はすでに同じことについて答えました。

@property変数とを設定する必要があります@synthesized。詳細については、リンクを確認してください。

于 2012-09-15T11:01:46.500 に答える