• 通知中心


    //
    //  KMainViewController.m
    //  NotificationCenter
    //
    //  Created by xiaoyao on 15/3/18.
    //  Copyright (c) 2015年 lije. All rights reserved.
    //
    
    #import "KMainViewController.h"
    #import "LoginViewController.h"
    
    #define UPDATE_LOGIN_NOTIFICATION @"updateLoginInfo"
    
    @interface KMainViewController () {
      UILabel *_infoLabel;
      UIButton *_loginOutButton;
    }
    @end
    
    @implementation KMainViewController
    
    - (void)viewDidLoad {
      [super viewDidLoad];
      
      [self setupUI];
    }
    
    - (void)setupUI {
      // username
      _infoLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 200, 100, 50)];
      _infoLabel.textColor = [UIColor blueColor];
      _infoLabel.textAlignment = NSTextAlignmentLeft;
      [self.view addSubview:_infoLabel];
      
      _loginOutButton = [UIButton buttonWithType:UIButtonTypeCustom];
      _loginOutButton.frame = CGRectMake(100, 300, 100, 50);
      [_loginOutButton setTitle:@"登录"forState:UIControlStateNormal];
      [_loginOutButton addTarget:self action:@selector(logOut:) forControlEvents:UIControlEventTouchUpInside];
      [_loginOutButton setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
      [self.view addSubview:_loginOutButton];
    }
    
    - (void)logOut:(UIButton *)buttton {
      [[NSNotificationCenter defaultCenter] addObserver:self
                                               selector:@selector(updateLoginInfo:)
                                                   name:UPDATE_LOGIN_NOTIFICATION
                                                 object:nil];
      LoginViewController *login = [[LoginViewController alloc] init];
      [self presentViewController:login animated:YES completion:nil];
    }
    
    - (void)updateLoginInfo:(NSNotification *)notifidcation {
      if (notifidcation) {
        _infoLabel.text = notifidcation.userInfo[@"loginInfo"];
        [_loginOutButton setTitle:@"注销" forState:UIControlStateNormal];
      }
    }
    
    // 移除监听
    - (void)dealloc {
      [[NSNotificationCenter defaultCenter] removeObserver:self];
    }
    @end
    //
    //  LoginControllerController.m
    //  NotificationCenter
    //
    //  Created by xiaoyao on 15/3/18.
    //  Copyright (c) 2015年 lije. All rights reserved.
    //
    
    #import "LoginViewController.h"
    #define UPDATE_LOGIN_NOTIFICATION @"updateLoginInfo"
    
    @interface LoginViewController () {
      UITextField *_userNameTextField;
      UITextField *_passwordTexttField;
    }
    @end
    
    @implementation LoginViewController
    
    - (void)viewDidLoad {
      [super viewDidLoad];
      [self configureLayoutqLoginUI];
    }
    
    - (void)configureLayoutqLoginUI {
      NSArray *titlrArray = @[@"登录名:", @"密码:", @"请输入username", @"请输入密码", @"登录", @"取消"];
      
      CGFloat x = 20;
      CGFloat y = 200;
      CGFloat width = 80;
      CGFloat height = 50;
      for (int i = 0; i < titlrArray.count / 3; i++) {
        // 登录和密码
        UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(x, y, width, height)];
        titleLabel.text = [titlrArray objectAtIndex:i];
        titleLabel.textColor = [UIColor blueColor];
        titleLabel.textAlignment = NSTextAlignmentCenter;
        [self.view addSubview:titleLabel];
    
        UITextField *infoTextField = [[UITextField alloc] initWithFrame:CGRectMake(x + width + 10, y, width + 100, height)];
        infoTextField.textAlignment = NSTextAlignmentLeft;
        infoTextField.placeholder = [titlrArray objectAtIndex:i + 2];
        infoTextField.clearButtonMode = UITextFieldViewModeWhileEditing;
        infoTextField.backgroundColor = [UIColor grayColor];
        infoTextField.tag = 2000 + i;
        [self.view addSubview:infoTextField];
        
        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
        button.frame = CGRectMake(x + width + 10 + (50 + 20) * i, 320, 60, 50);
        [button setTitle:[titlrArray objectAtIndex:i + 4] forState:UIControlStateNormal];
        [button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
        [button addTarget:self action:@selector(buttonClicked:)
         forControlEvents:UIControlEventTouchUpInside];
        button.tag = 1000 + i;
        [self.view addSubview:button];
        
        y = titleLabel.frame.origin.y + titleLabel.frame.size.height + 10;
      }
    }
    
    - (void)buttonClicked:(UIButton *)button {
      _userNameTextField = (UITextField *)[self.view viewWithTag:2000];
      _passwordTexttField = (UITextField *)[self.view viewWithTag:2001];
      if(button.tag == 1000) {
        if ([_userNameTextField.text isEqualToString:@"lije"] &&
              [_passwordTexttField.text isEqualToString:@"123"]) {
          [self postNotification];
        } else {
          return;
        }
      }
    }
    
    - (void)postNotification {
      NSDictionary *infoDict = @{@"loginInfo" : [NSString stringWithFormat:@"Hello%@",_userNameTextField.text]};
      
      [[NSNotificationCenter defaultCenter] postNotificationName:UPDATE_LOGIN_NOTIFICATION
                                                          object:self
                                                        userInfo:infoDict];
      [self dismissViewControllerAnimated:YES completion:nil];
    }
    @end
    

    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    【HEVC帧间预测论文】P1.8 Complexity Control of High Efficiency Video Encoders for Power-Constrained Devices
    【HEVC帧间预测论文】P1.7 Content Based Hierarchical Fast Coding Unit Decision Algorithm
    【HEVC帧间预测论文】P1.6 A Fast HEVC Inter CU Selection Method Based on Pyramid Motion Divergence
    【HEVC帧间预测论文】P1.5 Fast Coding Unit Size Selection for HEVC based on Bayesian Decision Rule
    【HEVC帧间预测论文】P1.4 Motion Vectors Merging: Low Complexity Prediction Unit Decision
    【HEVC帧间预测论文】P1.3 Fast Inter-Frame Prediction Algorithm of HEVC Based on Graphic Information
    【HEVC帧间预测论文】P1.2 An Efficient Inter Mode Decision Approach for H.264 Video Codin
    【HEVC帧间预测论文】P1.1 基于运动特征的HEVC快速帧间预测算法
    【HEVC简介】DB-DeBlock Filter
    【HEVC简介】ALF-Adative Loop Filter
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4829643.html
Copyright © 2020-2023  润新知