2011-06-24 23 views
1

一些帮助,将不胜感激。简单的代理方法不起作用

我有用于测试目的这个简单的项目:

http://dl.dropbox.com/u/10101053/testDelegate.zip

我想传递的NSString的委托方法,但与此代码不能正常工作。

testDelegateViewController.h

@protocol testDelegateViewControllerDelegate; 


@interface testDelegateViewController : UIViewController { 


id<testDelegateViewControllerDelegate> delegate; 

IBOutlet UIButton *button; 

} 

@property (nonatomic, assign) id<testDelegateViewControllerDelegate> delegate; 
@property (nonatomic, retain) IBOutlet UIButton *button; 

- (void)pass; 

@end 

@protocol testDelegateViewControllerDelegate 

- (void)passSomeToDelegate:(NSString *)some; 

@end 

testDelegateVewController.m

#import "testDelegateViewController.h" 

@implementation testDelegateViewController 
@synthesize delegate, button; 


- (void)pass 
{ 
    NSLog(@"Button Pressed"); 
    [self.delegate passSomeToDelegate:@"some"]; 
} 

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 


    [button addTarget:self action:@selector(pass) forControlEvents:UIControlEventTouchUpInside]; 
} 

//rest of code 

AppDelegate.h

#import "testDelegateViewController.h" 

@interface AppDelegate : NSObject <UIApplicationDelegate, testDelegateViewControllerDelegate> { 

} 

AppDelegate.m

#import "AppDelegate.h" 

@implementation AppDelegate 


@synthesize window=_window; 

@synthesize viewController=_viewController; 

#pragma mark Delegate Method 

- (void)passSomeToDelegate:(NSString *)some 
{ 
    NSLog(@"%@", some); 
} 

//rest of code 

但是在我的控制台中,点击按钮时没有打印任何内容。

谢谢

回答

6

你忘了设置你的委托。您可以在application:didFinishLaunchingWithOptions:方法中设置代理人。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.viewController.delegate = self; 

    self.window.rootViewController = self.viewController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

我加了self.viewController.delegate = self;来设置委托。

+0

谢谢迪帕克。 – lostinbcn

+0

这对像我这样的初学者很有帮助。 – beginners