raza
raza

Reputation: 33

i am not able to pass value from one view controller to another view controller

hi i have problem that i am not able to pass value from one view controller to another view controller through button i implement when i click on button other view appear on iphone screen but the value which i have set not dispay this is the button code

   -(IBAction)save:(id)sender 
{ 
nextview *admin = [[nextview alloc]init];
    [self presentModalViewController:admin animated:YES]; 
    if (admin.view)
    { 
admin.fetchname = name.text; 
} 
    [admin release];
}

and this is the nextview.h file

#import <UIKit/UIKit.h>
@interface nextview : UIViewController
{
    UILabel *getname;

    NSString *fetchname;
}
@property (nonatomic,retain) IBOutlet NSString *fetchname;
@property (nonatomic,retain) IBOutlet UILabel *getname;

@end

and this is the nextview.m file

#import "nextview.h"
#import "ViewController.h"

@implementation nextview
@synthesize getname,fetchname;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {

    }
    return self;
}

- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}
#pragma mark - View lifecycle




- (void)viewDidLoad
{


    getname.text = self.fetchname;



    [super viewDidLoad];

}

- (void)viewDidUnload
{
    [super viewDidUnload];

}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
@end

Upvotes: 0

Views: 583

Answers (3)

Jasmeet Singh
Jasmeet Singh

Reputation: 564

You can do something like this. You can implement the below code in nextView.h

        NSString *fetchData;

also property and synthesize this

       @property(nonatomic, retain)  NSString *fetchData;  

implement this on button pressed code

         -(IBAction)save:(id)sender 
         { 
                nextview *admin = [[nextview alloc] init];

                admin.fetchData = name.text; 

                [self presentModalViewController:admin animated:YES];  
                [admin release];
          }

Upvotes: 0

user1830095
user1830095

Reputation: 11

The viewDidLoad method is called before you had a chance to assign your NSString value. That's why you dont see the text in your UIButton. Try this :

-(IBAction)save:(id)sender 
{ 
    nextview *admin = [[nextview alloc] init];

    admin.fetchname = name.text; 

    [self presentModalViewController:admin animated:YES];  
    [admin release];
}

Upvotes: 1

Cravid
Cravid

Reputation: 683

   -(IBAction)save:(id)sender 
   { 
          nextview *admin = [[nextview alloc]init];
          [self presentModalViewController:admin animated:YES]; 
          if (admin.view)
          { 
                 admin.fetchname = name.text; 
          } 
          [admin release];
   }

You release the instance of nextview right after you assign the name. That can't even work.

By the way, getname and fetchname are really bad chosen names for properties.

Upvotes: 0

Related Questions