但是有時候會碰到一些情況,可能無法順利用segue傳值,
而且可能會碰到一些情況,需要app先替你做一些事情,例如藍牙掃描,等到有值的時候再做傳送,
這時候可以用NSNotificationCenter來做處理
首先:先註冊一個通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didEnterField:) name:@"iii" object:nil];
不得不說,註冊聽起來怪怪,但是很生動,
上面翻成白話就是說,我想要知道通知中心有變動時,請通知我(self),我先註冊起來了歐!!要讓我知道歐!!xd~
下面就是實際的通知送出:
[[NSNotificationCenter defaultCenter] postNotificationName:@"iii" object:self.myTextField.text];
這邊把我的值(myTextField)送出來,
然後回到上面的selector裡面:
-(void)didEnterField: (NSNotification *)notify
{
NSString *string = [notify object];
NSLog(@"iii: %@",string);
self.mylabel.text = string;
}
在這邊附值把我接到的通知到的值給予我要給予的物件
************************
另外說到,如果我現在有多個物件要傳遞的時候呢!?
基本上在addObserver和postNotificationName
都一樣,只是name要改一下字串,
然後在@selector這個方法內要改一下(用name 的字串來分辨是哪一個)
************************
另外說到,如果我現在有多個物件要傳遞的時候呢!?
基本上在addObserver和postNotificationName
都一樣,只是name要改一下字串,
然後在@selector這個方法內要改一下(用name 的字串來分辨是哪一個)
if ([notification.name isEqualToString:@"major"]) {
NSLog(@"allCharacteristicWithNotify%@",[notification object]);
} else if ([notification.name isEqualToString:@"minor"]) {
NSLog(@"allCharacteristicWithNotify%@",[notification object]);
}
希望有所幫助
沒有留言:
張貼留言