独立于活动接口控制器在Apple Watch上显示消息的最佳方法是什么?

时间:2015-05-16 11:30:29

标签: ios watchkit

我想在Apple Watch上显示本地消息(由WatchKit代码生成)。我的问题是该消息可能是由当前活动的接口控制器之外的代码段触发的。

以独立于当前活动(最顶层)接口控制器的方式模拟呈现新接口控制器的最佳方法是什么?

一种方法是获取指向当前活动接口控制器的指针。但是如何以一种简单的方式做到这一点?

  • 一种可能的解决方案是使用一个全局属性,该属性包含指向当前活动接口控制器的指针。它会在所有接口控制器的willActivate方法中更新。

  • 另一种解决方案是始终将指向当前活动接口控制器的指针传递给可能要显示消息的所有方法。

  • 是否有更简单的方法来获取指向最顶层接口控制器的指针?

好吧,我甚至不相信上述方法是好的方法。如果在向接口控制器显示消息后不久解除最顶层控制器,该怎么办?然后消息可能不会显示很长时间或根本不显示。

是否可以在独立于当前活动(最顶层)接口控制器的所有内容之上模拟显示消息接口控制器?

我应该使用本地通知吗?有没有类似UIAlertView的东西?

解决此问题的最佳和最简单的方法是什么?

2 个答案:

答案 0 :(得分:0)

WatchKit中没有任何UIAlertView或WKAlertView。您必须使用文本视图初始化新的视图控制器,并将其传递给您要显示的字符串。

您可以使用此方法执行此操作:

夫特:

bool rs = db.Sales.Where(sl => sl.CustomerRefNbr).ToString();
string rs = db.Sales.Where(sl => sl.CustomerRefNbr);
Convert.ToBoolean(rs);

目标-C:

presentControllerWithName([Name] , context: [String])

答案 1 :(得分:0)

要显示独立于活动接口控制器的消息,可以使用来自接口控制器的presentControllerWithName:context:来呈现接口控制器(带有故事板中箭头的控制器) 。即使接口控制器当前未处于活动状态,这也可以正常工作。

要使此解决方案起作用,调用presentControllerWithName:context:的方法必须具有指向接口控制器的指针。这可以通过将self接口控制器传递到其他接口控制器和方法来实现。

但是,我有时希望显示来自层次结构内部对象的消息。而且我不想将指向main接口控制器的指针传递给可能想要向用户显示消息的每个方法。

所以,我目前的解决方案是在全局变量(使用extern)中存储指向 main 接口控制器的指针,然后从 main 中显示接口控制器。

致谢:我要感谢“Schemetrical”和“Mike Swanson”提出的解决这一问题的意见。