我正在努力从父屏幕调用模态视图中的函数。
我在模态视图中设置了一个函数。 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实例方法 - 我不明白!欢迎任何提示!
截图 -
答案 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];
}
}