我正在构建一个界面,我可以在其中添加日历中的事件。 在AddAEventViewController中我有按钮来设置启动时间,持续时间和重复。 每次按下按钮时,视图控制器都会出现一个UIDatePicker,您可以在其中设置时间。拾取的组件显示在UITextField中。现在,当我按下Done-Button时,它会关闭ModalViewController并返回到我的AddAEventViewController。在“持续时间”按钮旁边,例如是一个UILabel,我想在那里显示刚刚选中并在文本域中显示的持续时间。 如何从其他ViewController中访问AddEventViewController?我尝试在那里分配并初始化一个新的,但它没有用!
- (IBAction)pressedDoneButton:(id)sender {
_mainAddWishViewController.labelDuration.text=textFieldDuration.text;
[self dismissModalViewControllerAnimated:YES];
}
请有人帮帮我! 谢谢朱尔斯
答案 0 :(得分:0)
有几种方法可以做到这一点,所有这些方法都记录了here。阅读和理解它们将对iOS软件开发有很大帮助。
答案 1 :(得分:0)
有很多方法可以实现这一目标。这是一个相当简单的方法。
在“child”viewController中,添加一个委托属性并将其设置为父视图控制器。
然后在完成按钮处理程序中,执行以下操作:
[self.delegate performSelector:@selector(didComplete) withObject:self]
在父视图控制器中,按如下方式定义方法:
- (void) didComplete: (YourSubViewControllerClass *) sender
{
self.labelDuration.text = sender.textFieldDuration.text
}
基本上,这实现了一个非正式协议,其中subViewController通知主视图控制器它已完成并且输入值可用。
请注意,如果取消subViewController,请不要发送didComplete消息。