Reputation: 769
I tried pass value from selected row to view controller. Log return null value in new view controller.Where is my mistake ?
2013-06-18 17:28:59.394 App[1790:c07] ID is Here: 35023
2013-06-18 17:28:59.397 App[1790:c07] Value in Next view (null)
2013-06-18 17:28:59.398 App[1790:c07] Label is Here <UILabel: 0x9139810;
frame = (14 140; 255 16); clipsToBounds = YES; opaque = NO;
autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x915ab10>>
TableViewController Code :
NSString *localStringValue;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSUInteger row = [indexPath row];
NSString *value = [myArray objectAtIndex:row];
DetailViewController *second=[[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil] ;
second.PassID=value;
[self presentModalViewController:second animated:YES];
localStringValue = [tableView cellForRowAtIndexPath:indexPath].textLabel.text;
NSLog(@"ID is Here: %@", value);
}
Next View Controller Codes:
.h
@interface DetailViewController : UIViewController
{
NSString *PassID;
}
@property (nonatomic, retain) NSString *PassID;
@property (unsafe_unretained, nonatomic) IBOutlet UILabel *label;
.m codes
- (void)viewDidLoad
{
label.text=PassID;
NSLog(@"Label is Here %@",label);
[super viewDidLoad];
}
Upvotes: 3
Views: 2624
Reputation: 1505
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSUInteger row = [indexPath row];
NSString *value = [myArray objectAtIndex:row];
DetailViewController *second=[[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil] ;
/// second.PassID=value; ///Remove the line here
[self presentModalViewController:second animated:YES];
second.PassID=value; ///assign the value after presenting
localStringValue = [tableView cellForRowAtIndexPath:indexPath].textLabel.text;
NSLog(@"ID is Here: %@", value);
}
Upvotes: 1
Reputation: 357
Make changes in DetailViewController.h
@interface DetailViewController : UIViewController @property (nonatomic, retain) NSString *label;
in DetailViewController.m
-(void)setLabelText:(NSString *)label{
if(_label!=label)
_label = label;
}
and use function
[second setLabelText:value];
and print with
NSLog(@"Label is Here %@",self.label);
Upvotes: 0
Reputation: 2365
Try NSLog(@"Label is Here %@", self.label);
and see if that works.
The NSString *label;
ivar in your .h file isn't necessary, as you're also declaring a property with the same name.
Upvotes: 0