我希望你能在至少一点点成功地澄清我如何做和做什么,我确定我错了,所以我真的需要专家意见。 我有两个viewcontroller和nibs我想要的是从另一个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 :(得分:0)
如果我说得对,FirstViewController位于视图控制器层次结构的顶部(在导航控制器或呈现的模态中)?因此,如果只是创建一个SecondViewController实例并调用一个应该更改与SecondViewController对应的视图上的用户界面的函数,则根本不会这样做。
例如,您必须使用presentModalViewController:animated:呈现SecondViewController及其视图。之后,将显示SecondViewController的视图,您可以对该视图进行任何更改。同样调用方法drawingFunction:将按预期运行。
干杯, 安德烈亚斯
答案 1 :(得分:0)
您将实例与类混淆。您不向类发送消息(调用函数),而是将它们发送到实例。
在这种情况下,您有两个完全独立的FirstViewController实例。第一个是通过加载nib创建的,第二个是在-[SecondController turnOnFunction:]
中创建的。当您希望将drawingFunction:
消息发送到第二个实例时,它将被发送到第二个实例。
您需要将FirstViewController的nib实例链接到SecondController实例。您可以使用界面构建器中的插座执行此操作,也可以在创建显示SecondController时指定它。