0

我在我的应用程序中打开一个模态视图控制器,这个模态视图控制器包含 DatePicker。

该应用程序的导航层次结构是

TabbarController->NavigationController->ViewController->ViewController

我已将 segue 从第一个 ViewController 放到第二个并在 Modal segue 中打开它。

我已将 Identifier 放入 Modal 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;

    }
}

我已经按照模态segue http://www.raywenderlich.com/5191/beginning-storyboards-in-ios-5-part-2的本教程进行操作。

4

1 回答 1

1

我认为您将 segue 与视图控制器连接,而不是与导航控制器连接。要解决此问题,请将您的代码替换为:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"AddDate"])
    {
         DatePickerViewController *datePickerViewController = (DatePickerViewController*)segue.destinationViewController;
         datePickerViewController.delegate = self;

    }
}
于 2014-01-15T10:17:28.453 回答