我是 iPhone 开发的新手,有一些基本问题要protocols
问delegates
。我有两个视图控制器:视图控制器和 viewcontroller2nd。我在其中一个中有UITextField并想在其中输入一些内容(如名称),在 viewcontroller2nd 中,我有一个UILabel,我希望它在 UITextField 更改时显示你好,名称。
我正在关注这个视频:http ://www.youtube.com/watch?v=odk -rr_mzUo 让基本委托在单个视图控制器中工作。
我正在使用协议来实现这一点:
SampleDelegate.h
#import <Foundation/Foundation.h>
@protocol ProcessDelegate <UITextFieldDelegate>
@optional
- (BOOL)textFieldShouldReturn:(UITextField *)textField;
@end
@interface SampleDelegate : NSObject
{
id <ProcessDelegate> delegate;
}
@property (retain) id delegate;
@end
SampleDelegate.m
#import "SampleDelegate.h"
@implementation SampleDelegate
@synthesize delegate;
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
lbl.text = [NSString stringWithFormat:@"Hello, %@",txtField.text];
[txtField resignFirstResponder];
}
@end
视图控制器.h
#import <UIKit/UIKit.h>
#import "SampleDelegate.h"
@interface ViewController : UIViewController <ProcessDelegate>
{
IBOutlet UITextField *txtField;
}
@end
视图控制器.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
ViewController2nd.h
#import <UIKit/UIKit.h>
@interface ViewController2nd : UIViewController <ProcessDelegate> {
IBOutlet UILabel *lbl;
}
@end
ViewController2nd.m是来自 Xcode 的标准代码。
我的问题是如何将我的委托函数链接到我的 viewcontroller 和 viewcontroller2nd 以使其工作?
如果问题很愚蠢,请原谅我..需要一些指导。请指出我正在做的任何其他错误..谢谢..