我是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
)用于将对象从一个视图传递到另一个视图?谢谢。