xcode iphone开发中调用父函数
我们有 2 个文件“MainViewController”和“View01”
第一个文件 addSubView 第二个文件。
在第一个文件中,我们有一个名为 displayView 的函数。
我希望能够从 View01 文件调用此函数,以下代码是
View01 文件的正确部分
#import "MainViewController.h"
- (IBAction) changeView:id(sender){
MainViewControlle *appDelegate = [[UIApplication sharedApplication] delegate];
[appDelegate displayView:2];
}
,这是正确的方法吗?
目前我使用 NSNotificationCenter 来发送激活功能:)
We have 2 files 'MainViewController' and 'View01'
The first file addSubView the second one.
In the first file we have a function named displayView.
I want to be able to call this function from the View01 file is the following code correct
part of View01 file
#import "MainViewController.h"
- (IBAction) changeView:id(sender){
MainViewControlle *appDelegate = [[UIApplication sharedApplication] delegate];
[appDelegate displayView:2];
}
is this the correct way to do it?
at the moment I use the NSNotificationCenter to send activate the functions :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该尝试使用委托方法:-)
它的工作原理如下:
在您的视图中,您必须具有此参数:
然后在您的控制器中,您必须实现委托
在您的实现中,您需要添加一个:
最后,当您需要时,在您的视图中要调用该函数,只需执行以下操作:
祝你好运!
You should try using delegate methods :-)
It works like that :
In your view you must have this parameter :
And then in your Controller you must implement the delegate
In your implementation you need to add a :
And finally in your view when you need to call the function, just do :
Good Luck !
如果我没记错的话,你的代码不应该工作。你自己尝试过吗?
将返回您的 AppDelegate,其名称类似于
MyAppDelegate
而不是MainViewController
。但是,根据您使用或创建的模板,您的 AppDelegate 可能包含 MainViewController 属性,最有可能称为viewController
,因此您可以使用这是执行此操作的快速方法。对于更简洁的方式,请参阅 Vinzius 的回答。
If I'm not mistaken, your code shouldn't work. Did you try it your self?
will return your AppDelegate, called something like
MyAppDelegate
and notMainViewController
. However, depending on the template you used or created, your AppDelegate might contain a MainViewController-property, most likely calledviewController
so you could useThis is the quick way to do it. For a more tidy way, see Vinzius' answer.