0

我有一个名为 ReadingMaintView 的 tableviewcontroller。每行都有一个标签和一个数据收集控件,例如阅读日期有一个文本字段。为了允许用户使用他们的拇指滚动一个日期选择器来选择他们想要放置在阅读日期文本字段中的日期,我有另一个名为 AccessoryViewController 的 ViewController。这个视图上的所有内容都是一个日期选择器。当用户触摸accessorydetails 按钮时,我有一个启动AccessoryViewController 的segue。这样用户就可以选择他们想要的日期。

现在,我想让任何 Viewcontroller 能够调用 AccessoryViewController 到它需要的日期。这意味着 AccessoryViewController 需要知道调用 ViewController 的名称,以便它可以返回。我怎样才能做到这一点 ?我在 ReadingMaintView 中设置了 segue 准备,当我触摸附件按钮时它会触发。但是我必须在 AccessoryViewController 中做什么来检索被调用的名称(在本例中为 ReadingMaintView)来执行回调?

4

2 回答 2

0

如果我理解你的问题,这里有几个建议。ReadingMainView在构造函数中将作为参数传递给您的AccessoryViewController

public class AccessoryViewController : UIViewController {
    public AccessoryViewController(UIViewController parent) {}
}

(编辑:@LarryOBrian 当然是正确的。这已经由ParenViewController物业处理,所以这不是一个很好的建议......)

或者让你AcessoryViewController发出一个事件,控制器启动它可以注册一个事件处理程序

// Somewhere in ReadingMaintView
var accessoryViewController = new AccessoryViewController();
accessoryViewController.ActionCompleted += (eventArgs) => {}
于 2013-03-30T21:33:59.763 回答
0

每个UIViewController都有ParentViewControllertype 的属性UIViewController。或者,如果您在层次结构中处于低位,您可以抓住UIWindow'sRootViewController并按照自己的方式向下工作。ChildViewControllers

另外,我可能会误解您的用例,但似乎您可能只是调用UIViewController.PerformSegue(String identifier).

于 2013-03-31T04:01:55.127 回答