有没有办法用WatchKit替换导航堆栈中的当前控制器? This question我是如何在我的iPhone应用程序中进行的,但是我找不到用WatchKit复制它的方法。
我正在研究的最接近的替代方案就是弹出它,并以某种方式让控制器知道推动新的控制器。但我还是没想出来。
答案 0 :(得分:0)
我在第一个接口控制器中定义了bool属性。当我调用第二个接口控制器时,我将此属性设置为true。然后,当我关闭第二个视图控制器时,调用第一个视图控制器的方法willActivate
。这是我检查bool属性的地方,如果是真的话,立即弹出第一个接口控制器。
这种方法有效,但它有一个缺点:用户会在短时间内看到第一个视图控制器,然后通过动画消失。
如果有人有更好的想法,我会对此非常感兴趣。
答案 1 :(得分:0)
问题:我们想用接口控制器 B 替换接口控制器 A 。
这是一个可行的解决方案,适用于我:
让属性 P 成为主( M )接口控制器中的bool
。
true
并关闭 A 。 willActivate
。如果 P 为true
,则激活 B 的位置。在激活 B 之前,请将 P 重置为false
。一些意见:
使用以下Objective-C或Swift代码显示/激活接口控制器:
[self presentControllerWithName:@"InterfaceControllerXYZ" context:nil];
self.presentControllerWithName("InterfaceControllerXYZ", context:nil)
如果要从 M 激活多个接口控制器,请使用int
代替bool
告诉 M 要激活哪个接口控制器。
当然,这种方法不仅适用于主界面控制器,而且还可以与层次结构中更深层次的控制器一起使用。