2012-10-17 67 views
-1

如何從另一個.m文件中調用此-(void){}函數,方法?對不起,我忘記了術語)?從另一個.m文件中調用 - (void)

我也想能夠調用它像這樣[self closeMenu];

這裏,本地.m文件是在-(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)]; 

}]; 

} 

回答

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 
+0

好,我知道這一點,但它不執行的方法.. –

+0

然後你搞錯了別的地方。在有人可以幫助您之前,您需要提供更多信息。 –

+0

是的,我也面臨這個問題。讓我解釋。我使用xcode 4.3.3和我的高級4.5。高級將項目轉換爲ARC,並從svn及其工作中檢出。現在,如果我修改現有的類EmailSettingsViewController並添加一些方法,然後EmailSettingsViewController類能夠使用self調用方法,但如果我創建了EmailSettingsViewController類的實例並調用新添加的方法,它給了我錯誤「ARC問題,沒有可見的@interface for 'EmailSettingsViewController'聲明選擇器'orderNum:CustCode:'「 –

-1

好像你在談論某種控制器方法的崩潰某種menuView的和看起來這是一個全球性的menuView,你想與你的應用程序的其他人分享。

每當我有「共享」小部件,我使用他們的經理。

您能描述一下您所談論的那種架構嗎?

因爲從我的腦海裏跳出最骯髒的那種「蘋果示例代碼」方法是保持這個嬰兒的引用在App代表和在你的應用程序的任何地方,你可以這樣做:

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

希望這適用於你。

乾杯

+0

嗯,我只想從另一個類文件執行該方法。 –

+0

是的,你可以從你的應用程序的任何地方調用這些線,appDelegate可在任何地方使用。 –

相關問題