问题
I am facing the problem in displaying the value of string of AddNotesViewController Class , in the Label of the DetailsOfPeopleViewController.
All i want to do is whatever we entered in the UITextView of 1 class,should display in the UILabel of another class.
In file AddNotesViewController.h
UITextView *txtView;
@property(nonatomic,retain)IBOutlet UITextView *txtView;
in file AddNotesViewController.m
@synthesize txtView;
After this when i click on the tab bar item "save" then it should save in the data base , its saving to database and displaying the value also but its not passing the value to
DetailsOfPeopleViewController .
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{
NSLog(@"Tabbar selected itm %d",item.tag);
switch (item.tag) {
case 0:
appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NotesTable *crashNotInvolvingObj11 = (NotesTable *)[NSEntityDescription
insertNewObjectForEntityForName:@"NotesTable" inManagedObjectContext:[appDelegate managedObjectContext]];
// CameraViewController *camera=[[CameraViewController alloc] init];
crashNotInvolvingObj11.personNote=[NSString stringWithFormat:@"%@",txtView.text];
DetailsOfPeopleViewController *detail=[DetailsOfPeopleViewController alloc];
detail.testPersonNotesStr =[NSString stringWithFormat:@"%@",txtView.text];
//(value of testPersonNotesStr is DISPLYING here... )
[appDelegate saveContext];
[detail release];
break;
..................
}
in DetailsOfPeopleViewController.h
NSString *testPersonNotesStr;
UILabel *PersonNotesLbl;
@property(nonatomic,retain)IBOutlet UILabel *PersonNotesLbl;
@property(nonatomic,retain) NSString *testPersonNotesStr;
in DetailsOfPeopleViewController.m
@synthesize PersonNotesLbl;
@synthesize testPersonNotesStr;
- (void)viewDidLoad
{
[super viewDidLoad];
[PersonNotesLbl setText:testPersonNotesStr];
NSLog(@"PERSON NOTE is........ %@",testPersonNotesStr);
//(value of testPersonNotesStr is NOT DISPLYING here..... )
}
Please guide me where am I doing the mistake.
回答1:
Just do few thing in your code you will get you string
1 :->
Declair your DetailsOfPeopleViewController globally.
i.e. in .h
DetailsOfPeopleViewController *detail
2 :->
in your viewDidLoad alloc it in memory
detail=[[DetailsOfPeopleViewController alloc] init];
3 :->
Just declare your string property to copy
@property(nonatomic,copy) NSString *testPersonNotesStr;
or
You can send data using NSUserDefault
SetValue
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSString stringWithFormat:@"%@",txtView.text]; forKey:@"testPersonNotesStr"];
[defaults synchronize];
GetValue
testPersonNotesStr = [[NSUserDefaults standardUserDefaults] objectForKey:@"testPersonNotesStr"];
NSLog(@"PERSON NOTE is........ %@",testPersonNotesStr);
Follow my answer i have NSString value in addViewController and i want to display this value in UILabel of DetailsViewController
回答2:
You make it a property, so possibly try using the set method. Also, you need to init your ViewControlelr before setting the value. So:
DetailsOfPeopleViewController *detail=[[DetailsOfPeopleViewController alloc] init];
[detail setTestPersonNotesStr:[NSString stringWithFormat:@"%@",txtView.text]];
And I do not see where you actually display this view, you have to be displaying the same instance of this view to actually see the value.
回答3:
use delegates to pass values use this reference
来源:https://stackoverflow.com/questions/13602840/passing-the-value-from-one-class-to-other-class