2010-06-24 139 views
0

我希望你至少能够成功地澄清一下如何做什么,我敢肯定我错了,所以我真的需要一个专家意见。 我有两个viewcontroller与笔尖一起,我想要的是从另一个ViewController调用第一类中的函数,问题是另一个viewcontroller管理调用此函数,但唯一可以看到做的是NSlog输出控制台(我放在那个位置上知道函数被调用)在其他视图控制器的第一个视图中调用函数

例如: FirstViewController.m

-(void)drawingFunction:(NSString*)inputText{ 
NSLog("Feature was launched"); 
/* showing stuff in FirstView.xib */ 
} 

SecondViewController.m

-(void)turnOnFunction:(id)sender{ 
FirstViewController *stuff= [[PrviViewController alloc] init]; 
[stuff drawingFunction:@"ShowAll"]; 
} 

基本上,当我在PrviViewController.m含义中调用该函数而不参考外部例如

[self drawingFunction:@"ShowAll"]; 

一切都很好的展示,但是当我尝试调用从SecondViewController.m我看到这个功能只是一个“功能发布”在控制台上

我真的不知道该怎么办...

回答

0

如果我得到你的权利,FirstViewController是在视图控制器层次结构的顶部(无论是在导航控制器或呈现模式)?因此,如果是这种情况,只需创建SecondViewController实例并调用应该更改与SecondViewController相对应的视图上的用户界面的函数,将不会执行任何操作。

例如,您必须提供SecondViewController及其视图,例如presentModalViewController:animated:。之后,将显示SecondViewController的视图,并且您可以对该视图进行任何更改。还调用方法drawingFunction:将按照您的预期行事。

干杯, 安德烈亚斯

0

你混淆情况下使用类。您不会将消息(调用函数)发送到类,而是将它们发送到实例。

在这种情况下,您有两个完全独立的FirstViewController实例。第一个是通过加载笔尖创建的,第二个是在-[SecondController turnOnFunction:]中创建的。当您希望将邮件发送到第一个邮件时,该邮件将发送给第二个实例。

您需要将FirstViewController的nib实例链接到SecondController实例。您可以在界面构建器中使用插座来完成该操作,也可以在创建SecondController时将其分配。

相关问题