从另一个.m文件中调用此 - (void)

时间:2012-10-17 01:53:32

标签: iphone objective-c ios

如何从另一个.m文件中调用此-(void){}函数,方法?抱歉,我忘记了术语)?

我还希望能够在本地.m文件中调用它,例如[self closeMenu];

这是-(void){}

-(void)closeMenu{

//close the menu

[UIView animateWithDuration:0.6 animations:^{

    [UIView setAnimationBeginsFromCurrentState:YES]; // so it doesn't cut randomly, begins from where it is

    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

    [menuView setFrame:CGRectMake(menuView.frame.origin.x, -menuView.frame.size.height, menuView.frame.size.width, menuView.frame.size.height)];

}];

}

2 个答案:

答案 0 :(得分:3)

您必须在具有接口的.h文件中声明该方法。

在YourClass.h中

@interface YourClass:NSObject
- (void)closeMenu;
@end

在YourClass.m中

@implementation YourClass
- (void)closeMenu
{
    //Close the menu
}
@end

然后你必须在另一个你要调用此方法的文件中导入(#import "YourClass.h")。

#import "YourClass.h"

@implementation OtherClass
- (void)otherMethod
{
    YourClass *foo = [[YourClass alloc] init];
    [foo closeMenu];
}
@end

答案 1 :(得分:-1)

似乎你在谈论某种控制器方法来折叠某种类型的menuView,看起来这是一个全局的menuView,你想与你的应用程序的其余部分共享。

每当我有“共享”小部件时,我都会为他们使用经理。

你能描述一下你所谈论的那种架构吗?

因为我想到的最脏的“Apple示例代码”方法是在App代表中以及在应用程序的任何位置保留对此宝贝的引用,您可以这样做:

MyDelegate * delegate= (MyDelegate)[UIApplication sharedApplication] delegate];
[delegate.myCoolMenuController closeMenu];

希望这适用于你。

干杯