2012-10-17 3 views
-1

어떻게 호출합니까? -(void){} (함수, 방법? 죄송합니다. 다른 .m 파일의이라는 용어를 잊어 버렸습니까?다른 .m 파일에서 this - (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 파일의 방법을 선언해야하는 인터페이스를 가지고있다.

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

YourClass.m

에서 YourClass.h

@interface YourClass:NSObject 
- (void)closeMenu; 
@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 클래스에서 자체 메서드를 호출 할 수 있지만 EmailSettingsViewController 클래스의 인스턴스를 만들고 새롭게 추가 된 메서드를 호출하면 오류 "ARC 문제, 표시 할 수 없음 @interface 없음 'EmailSettingsViewController'는 selector 'orderNum : CustCode :' "를 선언합니다. –

-1

당신이 menuView의 어떤 종류를 축소하는 컨트롤러 메소드의 어떤 종류에 대해 얘기처럼 보인다 이것은 당신이 당신의 응용 프로그램의 나머지 부분과 공유하고 싶습니다 글로벌 menuView처럼 보인다.

"공유"위젯을 사용할 때마다 해당 관리자를 사용합니다.

당신이 말하는 아키텍처의 종류를 설명 할 수 있습니까?

내 마음에서 나옵니다 "애플 샘플 코드"접근의 더러운 종류의 앱 위임이 아기에 대한 참조를 유지하고 어디에서나 앱에서에서 당신이 할 수 있기 때문에 :

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

을 희망이 나중에 작동합니다.

+0

다른 클래스 파일에서이 메서드를 수행하고 싶습니다. –

+0

예, 앱의 어느 위치에서나이 라인을 호출 할 수 있습니다. appDelegate는 어디에서나 사용할 수 있습니다. –

관련 문제