如何在Apple Watch中将modal segue的标签“取消”更改

当我打开一个模式视图时,如何改变出现在左上angular的标签“取消”…我希望它是一个带有图像的button。

标签“ Cancel是模式显示的WKInterfaceController的默认“标题”,它出现在Apple Watch状态栏上。

用图像replace标题

无法隐藏状态栏,也无法在状态栏中显示图像,也不能作为此链接的一部分,也不能replace此链接。

设置模态视图标题的选项

但是,您可以将标题设置为新的string值。 例如,你可能想要Cancel Close 。 有四种方法可以设置这个标题,这些标题如下所述。 确保您阅读底部的注释 ,因为在大多数情况下,只有选项1可以接受。

  1. 您可以在Interface Builder中设置模态表示的WKInterfaceController的标题。 只需在“属性”检查器中设置“标题”属性即可。 当然,每个WKInterfaceController只能以这种方式设置一个静态标题,尽pipe可以在运行时使用上面概述的任何机制dynamic更改。

  2. 您可以在模态表示的WKInterfaceController的init方法中设置标题:

     override init () { super.init () self.setTitle("Close") } 
  3. 你可以直接在模态表示的WKInterfaceController的awakeWithContext方法中设置标题:

     override func awakeWithContext(context: AnyObject?) { super.awakeWithContext(context) self.setTitle("Close") } 
  4. 您可以使用上下文variables将标题传递给模态提供的WKInterfaceController。 在界面生成器中,将控制器的属性检查器中的identifier设置为模态显示。 (在这个例子中,它被设置为“modalController”。)然后通过传递期望的标题作为上下文来呈现控制器:

     self.presentControllerWithName("modalController", context: "Close") 

    然后,在模态呈现的控制器中:

     override func awakeWithContext(context: AnyObject?) { super.awakeWithContext(context) self.setTitle(context as? String) } 

注意:

WatchKit目前的“预期行为”几乎肯定意味着在大多数使用情况下,只有第一种select才被认为是可以接受的。 这是因为现在,对于其他三个选项,您将在加载时最初看到视图的默认标题,然后将其replace为使用setTitle设置的文本。 在视图加载后,awakeWithContext按devise运行,但即使在init中使用setTitle也不能避免初始显示默认标题。

上面列出的第一个选项用视图的新默认标题取代了Cancel 。 如果将“界面”构build器中的自定义标题与以下选项2-4中的任意一个相结合,则会看到完全相同的症状(初始标题将被setTitlereplace),只是使用不同的初始标题。

可以删除/隐藏标题。 只要复制到故事板的标题字段。 这不是ASCII空间。 这是中国的空间。 (虽然看不到标题,但仍然可以点击左上angularclosures模型视图。)

然后你可以创build一个新的button来closures模型视图的代码: [self dismissController];

我查看了WatchKit编程指南中的“呈现接口控制器的模式”部分 ,其中说:

模态界面的左上angular显示界面控制器的标题string。 当用户点击该string时,WatchKitclosures模式界面。 设置标题string以反映解除模态界面的含义。 例如,在显示信息时,可以将string设置为“完成”或“closures”。 如果您没有为您的界面控制器指定标题,WatchKit将默认显示“取消”string。

关于这个“取消”位,presentControllerWithName的WKInterfaceController文档presentControllerWithName:context: ::

除非提供的接口控制器使用setTitle:方法明确地改变它,否则模态接口的标题被设置为stringCancel。

似乎表明你在这个时候唯一的select是另一个string,而不是一个图像。

在标题中放置图像的方法虽然有限,但使用的是表情符号。 从Xcode 7.1开始,仿真器似乎受到一个错误的影响,并在那里显示错误的字符,但是它在设备上工作得很好。

 setTitle("Hello world! 🌍")