我一直在试图弄清楚为什么我第一次推送到WatchKit视图时,它是didAppear()运行的,但是第二次,当它弹出后,它完成了push命令,然后在不运行didAppear()之后立即崩溃了。

我一直在使用:

WKExtension.shared().rootInterfaceController.pop()


返回上一个视图。这是删除弹出的视图吗?如果可以的话,有没有一种方法可以保存视图,以便我可以再次推送它? pop()不返回视图。

最佳答案

问题是您弹出(从导航堆栈中删除)根接口控制器而不是当前接口控制器。您基本上是在尝试从中推下所有其他控制器的接口控制器。想象一下,如果您要建造一座积木塔,而不是从顶部卸下砖块,而是从底部卸下砖块。当然,您的塔会倒塌。

根据您实际想要实现的目标,您需要在当前接口控制器中调用self.pop()self.popToRootController()。如果导航堆栈上有两个以上的接口控制器,则前者将移回到上一个控制器,而无论堆栈中有多少个,后者将始终返回到根接口控制器。

关于swift - WKInterfaceController pop()是否删除弹出的Controller?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45624995/

10-14 23:40