佚名通过本文主要向大家介绍了html5 页面间传值,页面传值乱码,jsp页面传值,jsp页面之间传值,页面传值等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 通知传值刷新页面
描述:
解决方案1:
描述:
通知多次执行
各位我最近在做即时通讯的时候我很多页面都用到了通知、代理以及block进行传值并且刷新页面。可是我现在遇到了一个通知多次执行的问题。是这样的我将xmpp的代理方法封装成了一个类,在这个类里面很多地方都用到了通知去告诉我一些页面进行刷新获取最新的聊天信息数据,可是我现在遇到的情况就是我在历史聊天页面中我用到了通知可是我又不能在我页面关闭的时候把代理给移除了,如果一移除我将无法执行xmpp封装类所发出的代理方法,从而导致我页面无法刷新。后来我又想到了在viewDidLoad中创建注册通知方法的之前我先给移除一下所有的通知,然后在注册 可是事与愿违还是没法解决我的多次执行和那个无法刷新界面的方法,下面这几个通知我都要一直开着才能实现我的刷新 可是这样一来我退出一次在登录一次这样会造成通知叠加执行,有没有大神能给出比较好的解决方法- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = defaultBackgroundColor;
self.navigationItem.title = [UserInfromation gettingUserInformation:@"titles"];
[[NSNotificationCenter defaultCenter] removeObserver:self];
//监听消息来得通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(cleanRecentList) name:@"upDataRecentList" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(messageCome:) name:SendMsgName object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(messageCome:) name:@"getGroupList" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(readChatData) name:@"upDataView" object:nil];
myTableView = [[UITableView alloc]init];
myTableView.frame = CGRectMake(0, 0, kWindowWidth, kWindowHeight-113);
myTableView.delegate = self;
myTableView.dataSource = self;
[self.view addSubview:myTableView];
myTableView.tableFooterView = [UIView new];
}
解决方案1:
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
//注册通知 这样就只是注册一次通知
});