我有一个关于 Monotouch 的问题。
情况:我有 2 个 ViewController。第一个(我们称之为 VC-A)看起来类似于联系人编辑屏幕,这意味着它有一个 TableView,其中包含多个部分,每个部分都包含按钮和文本字段。现在,当用户单击其中一个按钮时,他将进入第二个 ViewController (VC-B),它显示一个包含数据库数据的 TableView。当用户单击这些行中的任何一行时,VC-B 将关闭,我想将选定的数据库条目(字符串)显示为首先打开 VC-B 的按钮(在 VC-A 中)的标题。
当我去年做一个 Objective-C 项目时,我设法通过使用委托(delegate)将数据发送回堆栈,但我还没有找到在 Monotouch 中如何工作的方法。
我在这里阅读了几个关于使用 AppDelegate 或使用单例的问题,但我不确定这是从 subview 返回数据的正确方法。
最佳答案
您可以复制委托(delegate)模式。向您的 VC-B 添加一个 C# 委托(delegate),它采用一个参数,一些数据结构。
在 VC-B 的“ViewWillDisappear
”中,如果委托(delegate)不为空则调用委托(delegate)并将数据传递给它。
这样,您的调用 VC 就可以访问数据,但您不需要两个 Controller 之间的紧密耦合。它所要做的就是在 VC-B 中注册一个委托(delegate)方法。
由于 MonoTouch 是 .NET4,您可以使用 Func<MyDataStructure>
或 Action<MyDataStructure>
并且不需要使用完全限定的委托(delegate)类型。
关于c# - 单点触控 : send data back down the stack to another ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7481613/