将数据传递给子视图iPhone的视图控制器

时间:2010-09-26 19:36:29

标签: iphone uiviewcontroller

可能是一个简单的问题,但我还没有找到解决方案。我有几个带有一些滑块的视图控制器,当拖动时,将数字输入到标签中。我还想让一个简单的弹出式键盘在同一个标​​签中输入数字。我创建了一个名为Keypad的视图控制器,当在当前视图控制器上点击一个按钮时,我这样做:

 - (IBAction)callKeypad:(id)sender
{
    Keypad *keypadController = [[Keypad alloc] initWithNibName:@"Keypad" bundle:nil];
   self.keypadViewController = keypadController;
   [self.view addSubview:keypadController.view];

    [keypadController release];

弹出键盘,当前视图控制器仍在后台可见。当我点击键盘上的数字时,我希望结果立即显示在当前视图控制器中。我想我要做的是让一个视图控制器将其输出发送到另一个视图控制器。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您应该创建主对象符合的委托协议,以便Keypad可以向其委托(主要对象)发送消息。

请参阅有关如何创建委托协议的问题:How do I create delegates in Objective-C?

答案 1 :(得分:1)

你有很多选择。

  1. 像Alexsander Akers所说,你可以使用代表和协议。
  2. 另一个选项是NSNotificationCenter,它允许您向任何已注册的其他类发送消息。
  3. 最简单/最丑陋的选择是在“拥有”视图中创建更新方法,并将拥有视图传递给子视图,并在需要时让子视图调用该更新方法。