如何隐藏导航栏返回按钮?

20

我想在Apple Watch上隐藏导航栏的返回按钮。有很多类似于我这样的问题,但它们都是针对iPhone的,如果您了解一些关于Apple Watch的知识,您会发现它们使用的是InterfaceController而不是ViewController。

因此,当我使用以下代码推送新的InterfaceController时:

[self pushControllerWithName:@"about" context:nil];

在导航栏上显示一个返回按钮,点击它可以返回到生成它的上一个InterfaceController。

有人知道如何隐藏或删除Apple Watch上的导航栏或此返回按钮吗?


你可以将色调颜色更改为透明或在返回按钮中添加nil字符串标题,希望它能正常工作。 - Prabhat
4个回答

10

我曾经遇到过同样的问题,解决方法如下:

NSMutableArray* controllerNames = [NSMutableArray new];
[controllerNames addObject:@"myInterfaceController"];
[WKInterfaceController reloadRootControllersWithNames:controllerNames contexts:myArrayOfData];
当IC重新加载时,它们不会有返回按钮,因为它们是主要的IC。
注意:
此方法实际上更改了您手表应用程序的“初始控制器”(带箭头的主界面控制器),这就是接口控制器没有返回按钮的原因。

这就是我正在寻找的,应该被接受的答案。您可以使用上下文在运行时创建自己的自定义导航层次结构。 - Blind Ninja

5

以下是针对所有先驱者的Swift版本:

WKInterfaceController.reloadRootControllersWithNames(["myInterfaceController"], contexts: [])

1
+ (void)reloadRootControllersWithNames:(NSArray *)names contexts:(NSArray *)contexts;

但是你会失去“推”动画。

0

如果您删除返回按钮,那么您计划如何返回到上一个屏幕?

这是我对Apple Watch导航按钮的观察:到目前为止,我们还没有找到任何方法来覆盖后退按钮标题或删除它。即使他们提供了添加标题的选项,但没有办法自定义字体或其他内容。最有可能的是,当苹果发布原始版本时,他们将提供所有选项。

UIKit和WK-kit 在UIKit中,您实际上可以使用hidesbackbutton属性隐藏它,但在手表上,它将显示先前的界面控制器标题。在UIKit中,我们使用UIViewController,但在Watch中,它是WKInterfaceController。

继承

NSObject -> WKInterfaceController

NSObject -> UIResponder -> UIViewController


我在InterfaceController中使用一个按钮来推动控制器。强制要求我使用这个按钮而不是导航栏上的返回按钮。 - Chaudhry Talha
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Chaudhry Talha
Talha,在UIKit中,您实际上可以使用hidesbackbutton属性隐藏它,但在手表上,它将向您显示先前界面控制器的标题。在UIKit中,我们使用的是UIViewController,但在Watch中,它是WKInterfaceController。 - Jay
我明白了...我以为UIKit可能会有用!好的,谢谢你的帮助。 :) - Chaudhry Talha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接