Senden von Daten von einem ViewController zu einem anderen.

Ich habe zwei ViewController:

1) ViewController

2) TestAppViewController

In ViewController.h ich definieren ein label, dessen text ich will gesendet von der zweiten viewController, ich.e `TestAppViewController.

Für diese definierte ich ein @property NSString * im ViewController.h, und erstellt ein Objekt dieser ViewController in meinem zweiten Controller.
Dann übergeben Sie einen Wert für diese Eigenschaft, aber ans, kommt immer noch null.

Folgendes ist mein code :

@property (nonatomic, retain) NSString *lableName;*

ViewController

#import "ViewController.h
#import "TestAppView1.h"
#import "TestAppViewController2.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    //Do any additional setup after loading the view, typically from a nib.
    //   [self addView1];
}

- (void)viewWillAppear:(BOOL)animated
{ 
    [self addView1];

    NSLog(@"Label name is %@",self.lableName);
}    

- (void)didReceiveMemoryWarning
{
   [super didReceiveMemoryWarning];
   //Dispose of any resources that can be recreated.
}

- (void)addView1
{
    TestAppView1 *testAppView1Obj = [ [TestAppView1 alloc]        initWithFrame:self.view.bounds];

    [testAppView1Obj setDelegate:self];
    [testAppView1Obj setSelectorOnButtonTapped:@selector(buttonTapped)];

    [self.view addSubview:testAppView1Obj];
}

 -(void)buttonTapped
 {

    TestAppViewController2 *testAppViewController2Obj =[[TestAppViewController2    alloc]initWithNibName:@"TestAppViewController2" bundle:nil];

    [self.navigationController pushViewController:testAppViewController2Obj animated:YES];
 }

 @end

ViewController2

#import "TestAppViewController2.h"
#import "TestAppView2.h"
#import "ViewController.h"

@interface TestAppViewController2 ()

@end

@implementation TestAppViewController2

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        //Custom initialization
    }
    return self;
}

-(void)viewWillAppear:(BOOL)animated
{
    [self addView2];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    //Do any additional setup after loading the view.
}



- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    //Dispose of any resources that can be recreated.
}

-(void)addView2
{
    TestAppView2 *testAppView2Obj =[ [TestAppView2 alloc]initWithFrame:self.view.bounds];

    [testAppView2Obj setDelegate:self];
    [testAppView2Obj setSelectorOnBackButton:@selector(callbackButtonTapped)];
    [self.view addSubview:testAppView2Obj];
}

-(void)callbackButtonTapped
{

    ViewController *viewControllerObj = [[ViewController alloc]init];

     viewControllerObj.lableName=@"Yogesh";    
     [self.navigationController popViewControllerAnimated:YES];


}

@end

Wenn ich versuche, drucken Sie die Werte in NSLog, es gibt mir null.

stackoverflow.com/questions/15401852/...
Ich schlage vor, mit (strong, nonatomic) wenn du mit der arc als auch
passieren init oder verwenden Sie delegieren
Stellen Sie sicher, dass Sie umgesetzt haben, ist es richtig.Sie werden Zuteilung eines neuen view-controller und pop vom stack.Der code wird nicht gelöscht.In Ihrem callbackbuttontapped was ist die Verwendung der Zuweisung, die anzeigen, wie Ihre sind nicht mit dieser. Statt pop-schieben Sie die Ansicht, um die Effekte zu sehen.
Sie helfen mir, indem Sie zeigen ein Beispiel der Verwendung von Delegaten.. zum senden von Werten zwischen Steuerungen

InformationsquelleAutor yogesh | 2013-09-02

Schreibe einen Kommentar