Я пытаюсь получить доступ к свойствам объекта (firstName человека), который хранится в массиве, и назначить его меткам в отдельном контроллере представления (SplitMethodViewController). Значение имени успешно назначено здесь. Фрагмент кода, как показано ниже:
В контроллере начального вида (до отображения контроллера модального вида, содержащего UILabel):
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
int row = [indexPath row];
Person *thisPerson = (Person *)[self.personArray objectAtIndex:row];
SplitMethodViewController *smvc = [[SplitMethodViewController alloc]initWithNibName:nil bundle:nil];
smvc.nameLabel.text = [[NSString alloc] initWithFormat:@"%@", thisPerson.firstName];
//This lines returns the value I want, showing that assignment is working till this point
NSLog(@"The name label is %@", smvc.nameLabel.text);
[self presentModalViewController:smvc animated:YES];
[smvc release];
}
Однако значения становятся пустыми, когда я проверяю в splitMethodViewController (проверяется в методе ViewDidLoad)
@interface SplitMethodViewController : UIViewController
{
UILabel *nameLabel;
}
@property (nonatomic, retain) IBOutlet UILabel *nameLabel;
@end
@implementation SplitMethodViewController
@synthesize nameLabel;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization.
self.nameLabel = [[UILabel alloc] init];
}
return self;
}
- (id)init
{
return [self initWithNibName:nil bundle:nil];
}
- (void)viewDidLoad
{
//name label returning nothing here.
NSLog(@"namelabel is %@",self.nameLabel.text);
[super viewDidLoad];
}
@end
Я уверен, что где-то допустил какую-то глупую ошибку. Я попытался удалить все розетки и ярлыки и воссоздал только одну именную метку и розетку. Но я все еще решаю эту проблему.
Любая помощь будет оценена!