我有一个继承自UIViewController的自定义类,当我想要导航时,我正在向这个类投射一个seque,就像这样
MyCustomViewController *vc = ((MyCustomViewController *)segue.destinationViewController);
这样可行,但如果我查看Xcode,vc变量实际上是一个UINavigationController(我认为这是我的根本问题)。 接下来我尝试在该视图上设置一些变量并获得异常
由于未捕获的异常而终止应用 'NSInvalidArgumentException',原因:' - [UINavigationController setMyVarID:]:无法识别的选择器发送到实例0xbe59ec0'
这是我以前根本没有处理过的所有故事板ios视图,但我试图追查已经完成的代码中的错误。
关于如何使该演员工作正常或我可能做错其他什么的任何想法?
答案 0 :(得分:1)
如果您可以提供StoryBoard设置的屏幕截图,这将有助于确定确切的问题。
考虑这个设置:
VC1 - >模态争论 - > NAV1 - >根视图关系 - > VC2
如果导航控制器(NAV1)与视图控制器(VC2)具有Root View关系并且您有一个segue格式VC1到NAV1,那么在prepareForSegue:方法中,您的目标视图控制器不是NAV1而是根视图(VC2)。
所以你需要将类分配给VC2(UserWishListRoomsViewController)而不是NAV1(它应该是一个通用的UINavigationController),然后代码就可以了。
答案 1 :(得分:0)
目标C允许你将id
投射到任何东西。您需要将其投放到UINavigationController
并可能获得topViewController
。