2015-01-09 2 views
0

저는 leftMenuView라는 uiview가 있고 그보기에는 단추가 있고 해당 단추에 작업을 추가하여 작업 메서드에서보기 컨트롤러를 호출해야합니다. 내가 무엇을했는지까지 살펴보십시오 :uiview에서 다른보기 컨트롤러로 단추 동작을 전달하는 방법

을이

#import <UIKit/UIKit.h> 

@class LeftMenuView; 

@protocol LeftMenuViewProtocol <NSObject> 

-(void)homeClicked; 

@end 

@interface LeftMenuView : UIView 

@property (nonatomic,assign) id<LeftMenuViewProtocol> customDelegate; 

-(IBAction)homeClickedAction:(id)sender; 

@end 

및 leftMenuView.m에

#import "LeftMenuView.h" 

@implementation LeftMenuView 

-(IBAction)homeClickedAction:(id)sender 
{ 
    [self.customDelegate homeClicked]; 

    NSLog(@"Clicked Home"); 
} 

@end 

지금 내가 대리자를 통해 메소드를 호출하려고 파일을 내 leftMenuView.h

입니다

이제 homeViewController.h

에서
@interface homeViewController : UIViewController<LeftMenuViewProtocol> 

및3210 지금 내 homeViewController.m에서 그 메소드를 호출하려고하지만

-(void)homeClicked 

{ 

    NSLog(@"Clicked Home"); 

} 

호출되지 않습니다하지만 메소드가 호출되는 것을 leftViewMenu.m 같이 경우 위의 방법은 호출되지 않습니다. 아무도이 문제와 관련하여 도움이되기를 바랍니다.

+1

당신이'leftView.customDelegate = 자기처럼'customDelegate' (뭔가를 설정 했 : 예를 들어, homeViewController의 viewDidLoad에, 당신은 뭔가를 할 수 있습니다)? –

+0

뷰 클래스로 연결하는 방법과 IBAction 단추를 이미지로 표현할 수 없습니다. –

+0

예, Bonafons가 위에서 말한 것처럼, leftviewMenu 클래스에 대한 위임자로 homeviewcontroller를 설정했는지 언급하지 않았습니다. 방금 방금 언급 한 homeViewController는 LeftMenuViewProtocol을 확인합니다 – SeriousSam

답변

0

또는 가정 당신은 당신의 leftMenuView에 대한 참조가 당신의 homeViewController 당신이 만들 수 있습니다 UIButton 프로그램과 homeViewController와 버튼의 대상을 설정합니다. 당신의`homeViewController`의`viewDidload`에`;

UIButton *myButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 100, 20)]; // set the frame you want 
myButton.backgroundColor = [UIColor redColor]; // Do additional set up 
[myButton addTarget:self action:@selector(homeClicked) forControlEvents:UIControlEventTouchUpInside]; // here the target of your button's action is your homeViewController 
[self.leftMenuView addSubView:myButton]; // Add the button in your left view 
+0

간단한 답변이지만 매우 효과적입니다. –

0

나는 homeViewController에 당신은 당신이 자기customDelegate을 설정해야 LeftMenuView에 대한 속성을 가지고 있다고 가정하자. homeViewController의 viewDidLoad 방법 :

self.leftMenuView.customDelegate = self; 
관련 문제