我想知道iPhone开发中应用程序流程的最佳实践。
您如何在视图控制器之间传递消息?
您使用单例模式吗?将其在视图之间传递还是有一个主控制器来管理流程?
谢谢。
我想知道iPhone开发中应用程序流程的最佳实践。
您如何在视图控制器之间传递消息?
您使用单例模式吗?将其在视图之间传递还是有一个主控制器来管理流程?
谢谢。
NSNotificationCenter
,这对于这种工作非常棒。可以将其视为广播消息的简单方式。NSNotificationCenter *note = [NSNotificationCenter defaultCenter];
[note addObserver:self selector:@selector(eventDidFire:) name:@"ILikeTurtlesEvent" object:nil];
/* ... */
- (void) eventDidFire:(NSNotification *)note {
id obj = [note object];
NSLog(@"First one got %@", obj);
}
NSNotificationCenter *note = [NSNotificationCenter defaultCenter];
[note addObserver:self selector:@selector(awesomeSauce:) name:@"ILikeTurtlesEvent" object:nil];
[note postNotificationName:@"ILikeTurtlesEvent" object:@"StackOverflow"];
/* ... */
- (void) awesomeSauce:(NSNotification *)note {
id obj = [note object];
NSLog(@"Second one got %@", obj);
}
将会产生以下结果(顺序取决于哪个ViewController先注册):
First one got StackOverflow
Second one got StackOverflow
NSNotification 类有点繁重,但适合您所描述的用法。它的工作方式是,您的各种 NSViewController
向 NSNotificationCenter
注册以接收它们感兴趣的事件。
Cocoa Touch 处理路由,包括为您提供类似单例的“默认通知中心”。更多信息请参见 Apple 的 notification guide。