ios notification

1,- (void)viewWillAppear:(BOOL)animated 中注册notification

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(actionSheetSelect:) name:@"actionSheetSelect" object:nil];

2,在接收notification地方实现方法体

-(void)actionSheetSelect:(NSNotification *)notification{
    
    NSString* obj = (NSString*)[notification object];
    if ([obj isEqualToString:@"MobilePhone"]) {
        
        //load the view though psw
        
        GetPswThroughPhoneNumberViewController *pushView = [[GetPswThroughPhoneNumberViewController alloc] init];
        [self.navigationController pushViewController:pushView animated:YES];
        [pushView release];
    }
    else if([obj isEqualToString:@"Email"]){
        //load the view though email
        GetPswThroughEmailViewController *pushView = [[GetPswThroughEmailViewController alloc] init];
        [self.navigationController pushViewController:pushView animated:YES];
        [pushView release];
    }
    else{
        NSLog(@"erase");
    }
}

3,调用的地方发送请求

- (void)buttonClicked:(id)sender {
    NSUInteger buttonIndex = ((UIView *)sender).tag - 100;
    
    [self dismissWithClickedButtonIndex:buttonIndex animated:YES];
    
    switch (buttonIndex) {
        case CMActionSheetButtonMobilePhoneIndex:
        {
            [[NSNotificationCenter defaultCenter] postNotificationName:@"actionSheetSelect" object:@"MobilePhone"];
            break;
        }
        case CMActionSheetButtonEmailIndex:
        {
            //load the view though email
            [[NSNotificationCenter defaultCenter] postNotificationName:@"actionSheetSelect" object:@"Email"];
            break;
        }
        case CMActionSheetButtonCancelIndex:
        {
            //cancel
            [[NSNotificationCenter defaultCenter] postNotificationName:@"actionSheetSelect" object:@"Cancel"];
            break;
        }
        default:
            break;
    }
    
}

4,在viewDidDisappear中注销掉notification

- (void)viewDidDisappear:(BOOL)animated{
    
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    
}

原文地址:https://www.cnblogs.com/lisa090818/p/3311913.html