和ios开发中的"观察者"模式很相似----那就是NSNotificationCenter
在说这个之前,得提前说明一下"观察者"是什么来,在ios里,道先是观察者想要观察消息中心里的消息,那么就必须在消息中心里加入注册,可以用以下语句进行注册
// 第一个参数为self,表示将self设为观察者来观察通知,
// 第二个参数@selector(setData:)表示收到符合条件的通知后要执行方法setData:
// 第三个参数kNotificationMessage为指定的要观察的通知的名称,一般可为NotificationMessage;
// 第四个参数为nil,表示任何对象发过来的通知都可以被观察到
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(setData:)name:kNotificationMessage object:nil];
注册完成后,当消息中心有数据响应时,会响应setData方法.可以看参数说明.
至于发送信息的话,如下:
// 第一个参数表示发出的通知的名称
// 第二个参数表示谁发出的通知
// 第三个参数表示通知所带的信息
[[NSNotificationCenter defaultCenter] postNotificationName:kNotificationMessage object:self userInfo:infoDict];
还有一点要先说明的,使用者要先注册,信息响应再响应,然后观察者才会接收,顺序如下:
注册---->发送信息----->接收
除了UINaviigation和addSubView之外的页面跳转:presentModalViewController: dismissModalViewController:
ValueInputView *valueView = [[ValueInputView alloc] initWithNibName:@"ValueInputView"bundle:[NSBundle mainBundle]];
valueView.delegate = self;
[self setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self presentModalViewController:valueView animated:YES];