我想从PickDateController传递的NSDate到DetailViewController 等PickDateController我有一个IBAction为如下:如何正确传递使用故事板的NSDate?
-(IBAction)doneDate:(id)sender{
NSLog(@"Date Here DPC = %@", [datePicker.date description]); //This shows fine
dateLabel.text = [datePicker.date description]; //This also shows.
DetailViewController *controller = [[[DetailViewController alloc] init] autorelease];
NSDate *dateSel = datePicker.date;
[controller setDateSelected:dateSel]; //This DOES NOT go to DetailViewController
controller.dateSelected = dateSel; //This doesn't work either
[self.navigationController popViewControllerAnimated:YES];
}
对于像我这样一个虚拟的我失去了什么? 如何在DetailViewController上编写 - (void)setDateSelected {}?或者这不是问题?
是'故事板的DetailViewController'一部分吗?有没有之间的任何塞格斯这些控制器?如果你使用'alloc/init',你不会让故事板实例化控制器。如果你在这些控制器之间有一个连接,你不需要创建一个新的控制器,而是在你的视图控制器中实现'prepareForSegue' – 2012-01-27 17:07:42
是这两个控制器都是故事板的一部分,从DetailViewController到PickDateController有一个segue,所以我想我可以只是popViewController来“关闭”PickDateController,但是t他变量不会传递给DetailViewController。选择日期后,是否必须创建另一个继续返回DetailViewController的继续? – Farini 2012-01-27 17:27:11
不,你需要在你的'PickDateController'上创建一个'PickDateControllerDelegate'和'delegate'属性。然后,您可以在“DetailViewController”的'prepareForSegue'方法中将委托设置为您的调用'DetailViewController'。您现在可以通过'PickDateController'中的'self.delegate'来访问它。看一看http://www.raywenderlich.com/5191/beginning-storyboards-in-ios-5-part-2就是一个很好的例子。基本上,规则是:赛格斯只能进入“进”,从不“回”。 – 2012-01-27 18:16:30