作用:NSNotificationCenter是專門供程序中不同類間的消息通信而設置的.
註冊通知:即要在什麼地方接受消息
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mytest:) name:@" mytest" object:nil];
參數介紹:
addObserver: 觀察者,即在什麼地方接收通知;
selector: 收到通知後調用何種方法;
name: 通知的名字,也是通知的唯一標示,編譯器就通過這個找到通知的。
發送通知:調用觀察者處的方法。
[[NSNotificationCenter defaultCenter] postNotificationName:@"mytest" object:searchFriendArray];
參數:
postNotificationName:通知的名字,也是通知的唯一標示,編譯器就通過這個找到通知的。
object:傳遞的參數
1.簡單實例
- (void)viewDidLoad
{
[super viewDidLoad];
// 1.監聽通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotification object:self.accountField];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotification object:self.pwdField];
}
<span style="color:#FF0000;">//2.</span>
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
<span style="color:#FF0000;">/**
* 3.文本框的文字發生改變的時候調用</span>
*/
- (void)textChange
{
// 控制按鈕的狀態
// if (self.accountField.text.length && self.pwdField.text.length) {
// self.loginBtn.enabled = YES;
// } else {
// self.loginBtn.enabled = NO;
// }
self.loginBtn.enabled = (self.accountField.text.length && self.pwdField.text.length);
}