如何使用topViewController传递对象?

时间:2014-01-08 14:25:53

标签: ios objective-c

我是Objective-C的初学者。我想在视图之间传递信息。我知道这是一个非常常见的问题,但答案并不适合我。

我首先找到了这个答案(Passing Data between View Controllers),这真的帮助我让事情发生了变化。问题在于这种方法:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if([segue.identifier isEqualToString:@"newReminderSegue"]){

      UINavigationController *navController = (UINavigationController *)segue.destinationViewController;

      // This line is giving me trouble
      AddItemViewController *controller = (AddItemViewController *)navController.topViewController;

      controller.listToPassOn = list;
    }
}

它引发了一个我不知道如何修复的例外:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ViewControllerB topViewController]: unrecognized selector sent to instance 0x8ad81d0'

通过一些搜索,我发现这个答案(Unrecognized selector sent to instance using Storyboards)在后面的一个答案中给出了问题的替代解决方案,

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if([segue.identifier isEqualToString:@"newReminderSegue"]){

        // This line is giving me trouble
        AddItemViewController *controller = (AddItemViewController *)[[segue destinationViewController] topViewController];

        controller.listToPassOn = list;
    }
}

引发了同样的例外。

我想我的问题是:如何将这些代码行(尤其是topViewController)用于将对象从一个视图传递到另一个视图?谢谢。

0 个答案:

没有答案