c# - 单点触控 : send data back down the stack to another ViewController

标签 c# uiviewcontroller xamarin.ios

我有一个关于 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/

相关文章:

c# - 有没有办法接收焦点输入的关键输入?

c# - Rx - 响应式扩展 - 从第一个 Observable 到第二个的条件切换

ios - 启动后立即添加 View 时出现 "Application windows are expected to have a root view controller"消息,仅限 iOS 9

c# - Visual Studio 2017 Info.plist 在选项卡更改后丢失分发目标

c# - 对 ActionResult 进行单元测试

c# - Entity Framework核心3.1.1多级继承

ios - 在自定义 View 和 View Controller 之间传递数据

ios - 如何将值传递给另一个 UINavigationViewController

c# - 在没有 APNS 的应用程序中显示 Apple 警报角标(Badge)

c# - 我能否仅使用 Xamarin PCL 以 iOS 和 Android 为目标并拥有更多 .NET 功能?