iOS:如何使用下一步和后退按钮更改标签 (DetailView)

Posted

技术标签:

【中文标题】iOS:如何使用下一步和后退按钮更改标签 (DetailView)【英文标题】:iOS: How to change a label with a next and a back button (DetailView) 【发布时间】:2012-07-24 19:59:42 【问题描述】:

我有一个主从应用程序,在我的 DetailView 中有一个“返回”和“下一步”按钮。 按钮的工作原理: 如果我单击后退/下一个按钮,则标签(来自带有 MasterView 的 SearchBar 的 TableView)应更改为 TableView 的上一个/下一个条目。 我的问题是我不知道该怎么做。 我在这个论坛上搜索,找到了这个主题ios: Button to access next Tableview cell,但我不明白(我是iOS开发的新手)。 你能帮我吗?

编辑: 这是一个 iPhone 应用程序,带有 Storyboard 和从 MasterView 到 DetailView 的 segue。 而且是动态的TableView。

【问题讨论】:

动态或静态UITableView? master/detail 有不同的关联方式,每种方式的答案都会略有不同。这是 iPad 拆分视图(有或没有故事板),还是从主到细节的转场,还是在点击单元格时从 xib 文件创建的细节? TableView 有一个动态原型单元 @Phillip Mills:哦,对不起,我忘了写它是一个带有 Storyboard 的 iPhone 应用程序,从大师到细节的衔接 【参考方案1】:

基本过程是让可以提供数据的类成为需要它的类的委托。

创建新协议。

让主控制器实现协议。

为细节控制器提供一个属性,该属性引用 该协议。

prepareForSeque: 中,将详细信息的委托设置为主 控制器。

点击按钮后,调用您的代理获取新数据。

【讨论】:

感谢您的回答。你能从第 3 点更准确地解释它吗?我不知道该怎么做。 指定类型时,可以使用@property (nonatomic, strong) id<MyProtocol> dataDelegate;等语法声明if符合协议。在这种情况下,您需要详细控制器中的委托属性指向主控制器。 我创建了一个协议(DPApp.h @protocol DPApp <NSObject>)。然后我将它实现到 MasterViewController.m #import DPApp.h。我现在也在 DetailView.h @property (nonatomic, strong) id<DPApp> dataDelegate;#import DPApp.h 之后创建了该属性。但现在我不明白第 4 点和第 5 点。你能解释一下吗?谢谢你:) 你读过prepareForSegue:吗?当 segue 启动时,如果您在作为 segue 发起者的视图控制器上定义了该方法,则会调用该方法。传递给该方法的 segue 对象具有对目标控制器的引用。您可以将其转换为细节控制器并将其dataDelegate 设置为self。然后,在您点击按钮时,您只需调用类似myLabel.text = [dataDelegate back];myLabel.text = [dataDelegate next];...这取决于您如何定义协议方法。 我的 prepareForSegue 看起来像这样link。我的问题是我不知道如何实现你所说的话。我没有任何协议方法,因为我不知道我需要什么方法。你能给我一个我的应用程序的例子吗?我的 DetailView link

以上是关于iOS:如何使用下一步和后退按钮更改标签 (DetailView)的主要内容,如果未能解决你的问题,请参考以下文章

eclipse怎么执行上一步,下一步(撤销)的操作?

如何更改 iOS 上后退按钮的位置?

在swift 4下更改导航控制器后退按钮的字体

如何更改 iOS 13 导航栏中的后退按钮图像?

更改导航栏后退按钮的粗细

单击后退按钮iOS 6时如何继续播放音频