監聽的實現

登陸的時候有用戶名跟密碼,只有兩者全部輸入時登陸按鈕纔會變亮才能點擊登陸,否則爲灰,不能登陸。這時候就用到了監聽

-(void)viewDidLoad

{

//監聽文本輸入框的變化

//1.拿到通知中心

NSNotificationCenter * center = [NSNotificationCenter defaultCenter];

//2.註冊監聽 注意點:一定要寫上通知的發佈者 accountField

[center addObserver:self selector:@selector(textChange) name:UITextFIeldTextDidChangeNotification Object:seif.accountField];

[senter addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotification Object:self.pwdField];

}

-(void) textChange

{

//1.判斷是否同時輸入了賬號和密碼

if (self.accountField.text.length && self.pwdField.text.length )

  {

     //2.讓登陸按鈕可用

      self.loginBtn.enabled = YES;

  }

else

  {

   self.loginBtn.enabled = NO;

  }

//等同於上面的代碼

self.loginBtn.enabled = (self.accountField.text.length > 0 &&self.pwdField.text.length > 0);

}

-(IBAction)remPwdchange:(id)sender

{

  //1.判斷是否記住密碼

if (self.remPwdSwitch.isOn == NO)

    {

       //2.如果取消記住密碼取消自動登錄

    [self.autoLoginSwitch setOn:ON animated:YES];

   }

}

-(IBAction)autoLoginchange:(id)sender

{

 //1.判斷是否自動登錄

if(self.autoLoginSwitch.isOn)

   {

   //2.如果自動登錄就記住密碼

    [self.remPwdSwitch setOn:YES animated:YES];

   }

}


跳轉分爲手動執行segue和自動跳轉

-(IBAction)loginOnclick:(UIButton *)sender

{

//添加蒙版禁止用戶操作,並且提示用戶正在登陸 這裏用到了第三方類庫,已經封裝好的下載直接拖進工程,加上頭文件

[MBProgressHUD showMessage:@"正在拼命加載......"];

//登錄時需要一段時間連接服務器判斷,這裏用時間代替

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t) (1.5 * NSEC_PER_SEC)),dispatch_get_main_queue(), ^{

//1.判斷賬號是否正確

if (![self.accountField.text isEqualToString:@"su"]){

//登陸成功後移除蒙版

[MBProgressHUD hideHUD];

[MBProgressHUD showErroe:@"用戶名不正確!"];

return;

}

if (![self.pwdField.text isEqualToString:@"123"]){

//登陸成功後移除蒙版

[MBProgressHUD hideHUD];

[MBProgressHUD showError:@"密碼不正確!"];

return;

}

//登陸成功後移除蒙版

[MBProgressHUD hideHUD];

//如果正確,跳轉到聯繫人界面(手動執行segue) login2contatcs是在視圖segue添加的身份

[self performSegueWithIdentifier:@"login2contatcs" sender:nil];

});

}

//在segue跳轉之前,會傳入performSegueWithIdentifier方法創建好的segue對象

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

//1.拿到目標控制器

UIViewController * vc = segue.destinationViewController;

//2.設置目標控制器

//vc.navitionItem.title = [NSString stringWithFormat:@"%@ 的聯繫人列表",self.accountField.text];

//vc.title = vc.navigationItem.title;

vc.title = [NSString stringWitnFormat;@"%@ 的聯繫人列表",self.accountField.text];

}

-(void)dealloc

{

   [[NSNotificationCenter defaultCenter] removeObserver:self];

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章