我試圖在我的Storyboard
中使用NSNotification。在故事板中使用NSNotification
當我不使用故事板時,此代碼有效。
這是ViewController1:
- (IBAction) buttonClickedListener2:(id)sender {
[[NSNotificationCenter defaultCenter]
postNotificationName:@"TestNotification"
object:self];
}
這是ViewController2:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(receiveTestNotification:)
name:@"TestNotification"
object:nil];
NSLog(@"initWithNib");
}
return self;
}
- (void) receiveTestNotification:(NSNotification *) notification
{
// [notification name] should always be @"TestNotification"
// unless you use this method for observation of other notifications
// as well.
if ([[notification name] isEqualToString:@"TestNotification"])
NSLog (@"Successfully received the test notification!");
}
它是什麼毛病碼?正如我所說我想讓它在Storyboard中運行。
我很感謝你給我一些關於如何在STORYBOARD
中使用NSNotification的toturials。
是的,你對initWithNibName完全正確。但是當我使用'initWithCoder'時,它會顯示一個警告:'控制到達非空函數結束。它不起作用。即使我無法使用Push導航到第二個viewController。 – Ali
@Ali可能是你錯過了initWithCoder方法的返回值寫爲' - (id)initWithCoder:(NSCoder *)aDecoder' – Kamarshad
是的,但沒有奏效。當我們導航到第二個ViewController時調用'initWithCoder'。 – Ali