クリックすると、別のクラスviewController
への参照を動的に作成し、その過程でそのパラメーターも設定するボタンを持つがあります。次のように for ループ内でこれを行います。viewController
viewController
-(void) clickOnButton:(id)sender {
for (PersonObject *checkPerson in [DataModel sharedInstance].personList) {
if (((UIControl*)sender).tag == checkPerson.personID) {
ParentViewController *parentView = [[NSClassFromString(checkPerson.childViewController) alloc] init];
parentView.personName = checkPerson.name;
NSLog(parentView.personName);
[self.navigationController pushViewController:parentView animated:YES];
}
}
}
作成され、ユーザーが送信される先の viewController では、viewDidLoad メソッドに次のコードがあります。
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
NSLog(@"Hello %@", personName);
UILabel *title = [[UILabel alloc] initWithFrame:CGRectMake(0, 10, 150, 35)];
[title setCenter:CGPointMake(self.view.frame.size.width/2, 27)];
[title setBackgroundColor:[UIColor clearColor]];
[title setTextAlignment:NSTextAlignmentCenter];
[title setFont:[UIFont boldSystemFontOfSize:15]];
[title setText:personName];
[self.view addSubview:title];
}
コードを実行すると、最初の viewController は personName パラメータの NSLog に正しい出力を返しますが、2 番目の viewController ステートメントのメソッド viewDidLoad 内の NSLog() は、personName の値が nil であることを示しており、何も表示されません。 viewController の私のタイトルとして。
パラメーター personName は NSString 型で、親の viewController クラスと子の viewController クラスの両方にあります (この 1 つの親を拡張しているいくつかの viewController クラスがあります)。子 viewController オブジェクトを動的に作成し、親 viewController を使用して送信される正しいパラメータ値を取得するにはどうすればよいですか?