【问题标题】:How do I find which viewController has pushed?如何找到推送了哪个 viewController?
【发布时间】:2020-01-22 14:45:40
【问题描述】:

我有简单的导航代码,可以从一个viewController 转换到下一个。

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"myStoryboard" bundle:nil];
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"myVC"];

UINavigationController *myNavigationController = [[UINavigationController alloc] initWithRootViewController:viewController];

[myNavigationController pushViewController:viewController animated:NO];

这样我收到错误消息:

...正在推送同一个视图控制器实例...不止一次,这是不受支持的,很可能是应用程序中的错误

现在,我了解到在应用程序的某处,相同的 viewController 已(或可以?)被推送,并且需要删除或以其他方式处理该代码行。问题是,我正在从事一个大型项目,但不知道该代码行可能在哪里。

那么,问题是,我该如何处理呢?我可以在pushing“正确”viewController之前以编程方式poppushedviewController吗?或者有什么方法可以找到导致问题的push?或者我可以通过其他方式解决 Ibn 吗?

【问题讨论】:

    标签: objective-c uiviewcontroller runtime-error pushviewcontroller


    【解决方案1】:

    导航视图控制器是一堆 VC。如果你走堆栈,你可以看到它是什么类型的对象。然后,您可以对类类型名称进行简单的字符串比较。

    【讨论】:

    • 谢谢,但是我如何“走堆栈”?你能说得更准确一点吗?
    猜你喜欢
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    相关资源
    最近更新 更多