问题标签 [wkinterfacecontroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
95 浏览

watchkit - WatchKit:具有自己的分层导航的模态控制器

Watchkit 提供 3 种类型的导航:基于页面的、模态的和分层的界面。

想象一下这种层次结构:

主控制器 V1 -> 模态控制器 V2 -> 推送到控制器 V3

我面临的主要问题:如何从模态界面控制器 V2 推送 V3 控制器,这可能吗?

0 投票
1 回答
84 浏览

swift - 如何通过点击标题知道用户何时关闭了模态呈现的控制器?

当用户通过点击标题关闭模式时,有没有办法在代码中知道?苹果的文档指出:

模态界面的标题设置为字符串 Cancel,除非呈现的界面控制器使用该setTitle:方法显式更改它。点击标题会自动关闭界面。

据我所知,现在有办法用按钮替换该标题。

我可以触发通知,didDeactivate()或者willDisappear()当应用程序进入后台时也会调用这些通知。因此,我可以在ExtensionDelegate 中进行额外检查,applicationWillResignActive()以区分用户在我的应用程序中或在我的应用程序之外的操作,但这似乎非常脆弱。

有没有更好的方法?

为什么需要这个?

就我而言,我有一个初始屏幕,用户可以在其中做出选择。做出选择后,我将展示包含基于该选择的数据的屏幕。

我总是想在做出选择时显示数据。因此,我保存选择并在应用启动时显示模式。

但是如果用户关闭了数据显示,我不想显示数据。但是我仍然想显示在第一个屏幕上所做的选择。所以我不能使用已选择触发模态显示的事实。

因此,我需要知道模态是否由于应用程序中的用户交互或应用程序被关闭而消失了。

0 投票
0 回答
55 浏览

swift - 使用变量名“属性”观看应用程序崩溃

我已经调试我的手表应用程序几个小时了,因为每次我尝试使用新的界面控制器时,我的应用程序在contextForSegueWithIdentifier. 我收到一条错误消息[__NSArrayM enumerateKeysAndObjectsUsingBlock:]: unrecognized selector sent to instance 0x7967e280,然后应用程序会崩溃。

我排除了退货声明contextForSegueWithIdentifier和其他所有内容。我已经到了注释掉单行并重新运行以查看可行的程度的地步。

事实证明,在我的新接口控制器类中,我有一个名为properties. 这条线是var properties = [String:AnyObject]()。当我将变量名称更改为其他任何名称时 - 我的应用程序停止崩溃,并且我的新界面控制器将实例化正常。

有没有其他人遇到过这个问题?我在想有一个变量properties在其他地方命名(可能在 WKInterfaceController 中?)?当您添加名为属性的变量时,任何人都可以确认为什么手表应用程序崩溃?

先感谢您。

0 投票
1 回答
258 浏览

apple-watch - WKInterfaceController 右上角按钮

On WKInterfaceController,有没有办法在手表屏幕的右上角添加一个按钮(例如“完成”)而不是时间?

0 投票
3 回答
1613 浏览

ios - 防止关闭模态 WKInterfaceController

有没有办法防止用户关闭模态控制器?

我认为在要求用户打开 iPhone 对应界面或在那里执行某些操作时想要“阻止”主 Watch App 界面是很常见的。

我目前的解决方案是在控制器被解雇但笨拙时再次呈现控制器。

0 投票
2 回答
123 浏览

swift - WatchKit InterfaceController 有条件地在 sendMessage:replyHandler 中播放触觉:

我想让接口控制器检查以确保当我收到电话回复时它仍在前台。如果是,请执行触觉以让用户知道它已完成工作。

sendMessage:replyHandler:是我用来与手机通信的东西,但它可能需要很长时间才能返回。InterfaceController设置为WCSessionDelegate. 用户可以在完成之前降低手腕可能需要足够长的时间。在这种情况下,我想捕获不触发的触觉。到目前为止,触觉可以排队,然后在未来的随机时间播放,这没有帮助。

我已配置要发送的通知,但仅在手表未显示应用程序时才会显示。因此,为什么我需要在尝试播放触觉之前弄清楚界面控制器是否在屏幕上。

0 投票
1 回答
69 浏览

watchkit - 用不同的数据更新 InterfaceController

嗨,我是WatchKit开发新手。我想知道我可以使用多个数据更新单个界面控制器以进行按钮点击

0 投票
1 回答
321 浏览

ios - 在 Apple Watch 的“ExtensionDelegate”中设置 rootInterfaceController

我正在制作一个 Apple Watch 应用程序,我想根据初始条件设置不同的根视图控制器。

我不能直接设置 WatchKit rootInterfaceController,因为它是一个只读属性,但是通过检查Apple 文档,他们说可以“在启动序列完成之前”设置它。

你有什么好的建议吗?也许通过故事板?

0 投票
1 回答
30 浏览

ios - 如何显示 Apple Watch 无法连接屏幕?

我正在开发 Apple Watch 应用并尝试处理无法连接到 iPhone 的错误情况:

无连接画面

并且需要解锁 iPhone 才能访问它:

解锁 iPhone 屏幕

我见过几个具有这些相同屏幕的应用程序,因此它们必须是系统的一部分。但是我无法在我的应用程序中显示这些。我需要设置什么让它们出现吗?我也想知道这些屏幕是否在 watchOS 2.0 中被删除。

谢谢

0 投票
0 回答
99 浏览

swift - WatchKit:在 x 秒和听写停止后调用 applicationWillResignActive

我的应用程序必须自动启动听写(使用带有空的建议数组的presentTextInputControllerWithSuggestions )。为此,我在某个屏幕上安排了 X 秒后延迟的听写。

但是,当用户在开始听写之前退出应用程序时,我遇到了问题。

一开始,我只是安排听写。如果我离开应用程序,听写会在后台开始,当我回到应用程序时,我看到了我的屏幕,但没有听写屏幕。如果我尝试重新启动听写,它不起作用(函数被调用并且听写开始但也在后台并且屏幕没有改变)。

所以,如果应用程序之前离开,我尽量不要开始听写。为此,我在 ExtentienDelegate 的 applicationWillResignActive 函数中更改了一个布尔值。但是,我的问题是用户退出应用程序时不会立即调用此函数。因此,如果用户退出应用程序 1 秒或更长时间,则在听写开始之前,布尔值会更改并且听写不会开始。当我回来时,它起作用了。但是,如果我在开始前退出,听写继续在后台开始,当我回来时,我无法重新开始听写。

那么,您能否告诉我是否有解决方案可以在应用程序停止时准确地更改我的布尔值或找到解决此问题的另一种解决方案(以编程方式停止听写,...)