我知道有很多关于此的帖子,但是我已经尝试了所有方法,但没有任何效果。因此,我尝试将一个对象在两个视图控制器之间传递给嵌入在导航项中的DBKIngredientsViewController。我有一个标识符为“ showIngredientsSegue”的推送类到DBKIngredientsViewController。我收到的错误消息是:
'NSInvalidArgumentException',原因:'-[DBKIngredientsViewController topViewController]:无法识别的选择器已发送到实例0x8a92450'
我所选择的视图控制器是嵌入在导航控制器中的,我认为这很混乱。这是怎么回事?需要明确的是,DBKViewController已经嵌入在导航控制器中,而推推功能则是在推动DBKViewController而不是将其嵌入的导航控制器。我尝试了不同的方法,但似乎没有任何效果。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"showIngredientsSegue"]){
UINavigationController *navController = (UINavigationController *)segue.destinationViewController;
DBKIngredientsViewController *controller = (DBKIngredientsViewController *)navController.topViewController;
controller.targetRecipe = selectedRecipe;
}
}
您确定那segue.destinationViewController
是一个UINavigationController
吗?似乎只是一个,DBKIngredientsViewController
所以这应该工作:
DBKIngredientsViewController *controller = (DBKIngredientsViewController *)segue.destinationViewController
另外,如果DBKViewController
已经有导航控制器,则按时就不需要第二个DBKIngredientsViewController
。如果要模态显示,则只需要第二个DBKIngredientsViewController
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句