間で値を渡します(私たちはTVCとEVCそれらを呼び出すだろう、簡単のため)TimerViewControllerとEfficiencyViewControllerを私は特定の値(2つのNSStringオブジェクトを渡すようにしようとしていますの初期化と私は2つのUIViewControllers持っViewControllers
、 1 NSTimeInterval)をTVCからEVCに送信します。 EVCを初期化して、ボタンを押すとポップアップする必要があります。 全体として、私は2つの方法を試みました。私はEVCをインスタンス化するとき、私はTVCに保持された値はリセットされるので、基本的にはデータが渡されない:直接(TVC)において値
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
EfficiencyViewController *efficiencyViewController = [storyboard instantiateViewControllerWithIdentifier:@"EfficiencyView"];
efficiencyViewController.category = _categoryLabel.text;
efficiencyViewController.desc = _descriptionTextField.text;
efficiencyViewController.duration = [_timer getInterval];
efficiencyViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentViewController:efficiencyViewController animated:YES completion:NULL];
問題を通過
1。カスタムのinitメソッド
TVC
EfficiencyViewController *efficiencyViewController = [[EfficiencyViewController alloc] initWithName:_categoryLabel.text desc:_descriptionTextField.text duration:[_timer getInterval]];
[self presentViewController:efficiencyViewController animated:YES completion:NULL];
EVC initWithNameメソッドの実装
- (id)initWithName:(NSString *)category desc:(NSString *)theDesc duration:(NSTimeInterval)theDuration {
// self = [super initWithNibName:@"EfficiencyViewController" bundle:nil];
if (self != nil) {
_category = category;
_desc = theDesc;
_duration = theDuration;
}
return self;
}
を構築
2.(私はEVCが実際に画面上にポップアップするので、これはあると思います) 問題:値は単に渡されていません。また、このようにして、EVCにはボタンやテキストラベルなどの主要コンポーネントが欠落しています。
[View Controller間でデータを受け渡しする](http://stackoverflow.com/q/5210535/643383)は正確に重複しているとは思えませんが、役立つはずです。あなたの問題の半分は、あなた自身のビューコントローラをインスタンス化することから生じているようです。もちろんそれを行うことは可能ですが、あなたは上流に泳いでいます。 @ NRitHがセグを使用することが推奨されるルートです。 – Caleb