IOS - 来自父级的模态视图中的调用函数

时间:2014-03-17 17:01:42

标签: ios objective-c

我正在努力从父屏幕调用模态视图中的函数。

我在模态视图中设置了一个函数。 m文件如下 -

-(void)setGoal:(NSString*)setGoal
{
 _bals = setGoal;
 NSString* result = [NSString stringWithFormat:@"%@", _setType];

_display.text = result;
}

我正试图通过以下内容从父视图触发此功能 -

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
  editGoalViewController *destViewController = segue.destinationViewController;
  if ([segue.identifier isEqualToString:@"goalInfo"])
  {

    [segue.destinationViewController setYourGoalViewController:self];
     [segue.destinationViewController setGoal:100];

  }
  if ([segue.identifier isEqualToString:@"longGoalInfo"])
  {
    [segue.destinationViewController setYourGoalViewController:self];
    [segue.destinationViewController setGoal:100];
  }
}

但我得到一个错误,指出'没有已知的选择器setGoal实例方法 - 我不明白!欢迎任何提示!

截图 -

enter image description here

1 个答案:

答案 0 :(得分:1)

您无法调用该方法,因为编译器无法将您的destinationViewController识别为您想要的UIViewController的同一类。

segue.destinationViewController的evey电话改为destViewController。 所以你的代码将是

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
  editGoalViewController *destViewController = segue.destinationViewController;
  if ([segue.identifier isEqualToString:@"goalInfo"])
  {

    [destViewController setYourGoalViewController:self];
     [destViewController setGoal:100];

  }
  if ([segue.identifier isEqualToString:@"longGoalInfo"])
  {
    [destViewController setYourGoalViewController:self];
    [destViewController setGoal:100];
  }
}