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)的主要内容,如果未能解决你的问题,请参考以下文章