我在我的应用程序中打开一个Modal视图控制器,这个模态视图控制器包含DatePicker。
应用的导航层次结构是
TabbarController->NavigationController->ViewController->ViewController
我已将第一个ViewController中的segue推送到第二个并在Modal segue中打开它。
我已将标识符推送到模态segue,并连接了自定义类。
但是当我编写prepareForSegue
方法时,应用程序崩溃并出现以下错误。
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [DatePickerViewController viewControllers]:无法识别的选择器发送到实例0xa082360'
prepareForSegue
的代码是
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"AddDate"])
{
UINavigationController *navigationController =segue.destinationViewController;
DatePickerViewController *datePickerViewController =[[navigationController viewControllers] objectAtIndex:0];
datePickerViewController.delegate = self;
}
}
我已经按照本教程进行了Modal segue http://www.raywenderlich.com/5191/beginning-storyboards-in-ios-5-part-2。
答案 0 :(得分:1)
我认为您将segue与视图控制器连接,而不是使用导航控制器。 要解决此问题,请使用以下代码替换代码:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"AddDate"])
{
DatePickerViewController *datePickerViewController = (DatePickerViewController*)segue.destinationViewController;
datePickerViewController.delegate = self;
}
}