【发布时间】:2019-10-07 17:26:00
【问题描述】:
在 Xamarin.iOS 中使用 UINavigationController(针对 iOS 11/12)我想在 destination 视图控制器中检测当我被导航返回 em> 到 - 即流行音乐。我特别想排除/检测目标 VC 何时被推送。
明确地说,假设我们已经从 A 导航到 C,然后又回到 B:
[A] -(push)-> [B] -(push)-> [C] -(pop)-> [B]
我想在A -> B 的初始推送和C -> B 的后续弹出之间检测/区分 - in B。
从概念上讲,这与 here 和 here 提出的问题相同,我应该 - 显然 - 能够在 ViewWillAppear() 中使用 isMovingToParentViewController / IsBeingPresented / View.Window 的组合,但是,已经尝试过链接问题(以及其他一些问题)中的方法,我没有看到这些属性的预期值;他们总是False,而View.Window总是null。
这是特定于 Xamarin.iOS 的怪癖,还是我遗漏了什么?如果它与 Xamarin 相关,是否有解决方法?如果没有,是否有人有此检测工作的基本 C# 示例?
我不希望在导航控制器(或委托,或单个 VC)中维护状态,因为应用程序结构将来可能会发生变化。但是,使用导航控制器或委托来指示到目标 VC(上面的“B”)的导航方向(弹出与推送)的解决方案是可以接受的。
【问题讨论】:
-
stackoverflow.com/questions/8228411/… 的副本?当然,这与 Xamarin 无关,因此可能存在一些差异,但它所说的内容是正确的。特别是在那里看到我的答案。
-
我不认为这是重复的,因为我有兴趣在目标 VC(重新)出现时检测更改,而不是在查看源时按下后退按钮。跨度>
-
好的,stackoverflow.com/questions/54602662/… 的可能副本。
标签: ios cocoa-touch xamarin.ios uinavigationcontroller