gpt4 book ai didi

ios - 如何正确转换 View Controller

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:27:58 24 4
gpt4 key购买 nike

我在转换我的 View Controller 时遇到问题。这是我的 appdelegate 中的代码片段:

        InitViewController *initVC = (InitViewController *)self.window.rootViewController;
VMParentVC *topVC = (VMParentVC *) initVC;
[topVC navigateToMain];

我想做的是强制转换 rootViewController,这样我就可以在其上使用我的 VMParentVC 类中的方法。但是当我这样做时,我得到了这个错误:

[UINavigationController navigateToMain]: 无法识别的选择器发送到实例"

不太确定我做错了什么。

最佳答案

该错误意味着您正在 UINavigationController 实例上调用 -navigateToMain,这不是您想要的。

这可能是因为您窗口的 Root View Controller 是一个 UINavigationController 实例,而您正在寻找的 View Controller 是导航堆栈中的第一个 View Controller 。如果是这种情况,您想查看 UINavigationController 中的第一个 View Controller :

 UINavigationController *navigationController = (UINavigationController*)self.window.rootViewController;
*topVC = (VMParentVC *) navigationController.viewControllers[0];
[topVC navigateToMain];

从导航堆栈中拉出 View Controller 后,检查 View Controller 是否真的是您认为它应该是的那种类也会更安全:

 UINavigationController *navigationController = (UINavigationController*)self.window.rootViewController;
UIViewController * topVC = navigationController.viewControllers[0];

if ( [topVC isKindOfClass:([VMParentVC class])] ) {
[((VMParentVC *)topVC) navigateToMain];
}

关于ios - 如何正确转换 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24843892/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com