Commit 915e7d0c7ae8d56474c852a2d57ed9c9d68a781c
1 parent
a0a95e2012
Exists in
master
and in
1 other branch
update api register
Showing 3 changed files with 122 additions and 0 deletions Side-by-side Diff
LifeLog/LifeLog/ConfirmForgetPassViewController.h
1 | +// | |
2 | +// ConfirmForgetPassViewController.h | |
3 | +// LifeLog | |
4 | +// | |
5 | +// Created by Panasonic R&D Center Vietnam on 8/2/17. | |
6 | +// Copyright © 2017 PhongNV. All rights reserved. | |
7 | +// | |
8 | + | |
9 | +#import <UIKit/UIKit.h> | |
10 | + | |
11 | +@interface ConfirmForgetPassViewController : UIViewController | |
12 | +@property (nonatomic, strong) NSString *email; | |
13 | +@end |
LifeLog/LifeLog/ConfirmForgetPassViewController.m
1 | +// | |
2 | +// ConfirmForgetPassViewController.m | |
3 | +// LifeLog | |
4 | +// | |
5 | +// Created by Panasonic R&D Center Vietnam on 8/2/17. | |
6 | +// Copyright © 2017 PhongNV. All rights reserved. | |
7 | +// | |
8 | + | |
9 | +#import "ConfirmForgetPassViewController.h" | |
10 | +#import "ServerAPI.h" | |
11 | +#import "Utilities.h" | |
12 | + | |
13 | +@interface ConfirmForgetPassViewController () | |
14 | +@property (nonatomic, weak) IBOutlet UITextField *tfConfirm; | |
15 | +@property (nonatomic, weak) IBOutlet UIButton *btnConfirm; | |
16 | +@end | |
17 | + | |
18 | +@implementation ConfirmForgetPassViewController | |
19 | + | |
20 | +- (void)viewDidLoad { | |
21 | + [super viewDidLoad]; | |
22 | + // Do any additional setup after loading the view from its nib. | |
23 | + self.title = @"Confirm Forget Password"; | |
24 | + | |
25 | + [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.tfConfirm attribute:NSLayoutAttributeTop multiplier:1 constant:-30]]; | |
26 | +} | |
27 | + | |
28 | +- (void)didReceiveMemoryWarning { | |
29 | + [super didReceiveMemoryWarning]; | |
30 | + // Dispose of any resources that can be recreated. | |
31 | +} | |
32 | + | |
33 | +- (IBAction)buttonConfirmTouchUpInside:(id)sender { | |
34 | + if (_tfConfirm.text.length > 0) { | |
35 | + ConfirmForgetPassViewController __weak *weakSelf = self; | |
36 | + [[ServerAPI server] confirmForgetPass:self.email withConfirm:self.tfConfirm.text CompletionHandler:^(NSError *error) { | |
37 | + if (error == nil) { | |
38 | + // back screen Login | |
39 | + dispatch_async(dispatch_get_main_queue(), ^{ | |
40 | + [weakSelf.navigationController popViewControllerAnimated:YES]; | |
41 | + }); | |
42 | + } | |
43 | + else { | |
44 | + dispatch_async(dispatch_get_main_queue(), ^{ | |
45 | + NSString *message = [error.userInfo objectForKey:@"message"]; | |
46 | + [Utilities showErrorMessage:message withViewController:weakSelf]; | |
47 | + }); | |
48 | + } | |
49 | + }]; | |
50 | + } | |
51 | + else { | |
52 | + [Utilities showErrorMessage:@"Please input code confirm" withViewController:self]; | |
53 | + } | |
54 | +} | |
55 | + | |
56 | +@end |
LifeLog/LifeLog/ConfirmForgetPassViewController.xib
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12120" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> | |
3 | + <device id="retina4_7" orientation="portrait"> | |
4 | + <adaptation id="fullscreen"/> | |
5 | + </device> | |
6 | + <dependencies> | |
7 | + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12088"/> | |
8 | + <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/> | |
9 | + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | |
10 | + </dependencies> | |
11 | + <objects> | |
12 | + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ConfirmForgetPassViewController"> | |
13 | + <connections> | |
14 | + <outlet property="btnConfirm" destination="pl4-fa-Poj" id="XyC-QE-8Jn"/> | |
15 | + <outlet property="tfConfirm" destination="ham-LV-cWN" id="Zxl-4z-x2u"/> | |
16 | + <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> | |
17 | + </connections> | |
18 | + </placeholder> | |
19 | + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> | |
20 | + <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> | |
21 | + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | |
22 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | |
23 | + <subviews> | |
24 | + <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="ham-LV-cWN"> | |
25 | + <rect key="frame" x="20" y="30" width="335" height="30"/> | |
26 | + <nil key="textColor"/> | |
27 | + <fontDescription key="fontDescription" type="system" pointSize="14"/> | |
28 | + <textInputTraits key="textInputTraits"/> | |
29 | + </textField> | |
30 | + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pl4-fa-Poj"> | |
31 | + <rect key="frame" x="104" y="70" width="167.5" height="30"/> | |
32 | + <constraints> | |
33 | + <constraint firstAttribute="height" constant="30" id="QuE-pa-iyz"/> | |
34 | + </constraints> | |
35 | + <state key="normal" title="Confirm"/> | |
36 | + <connections> | |
37 | + <action selector="buttonConfirmTouchUpInside:" destination="-1" eventType="touchUpInside" id="79P-c3-yj5"/> | |
38 | + </connections> | |
39 | + </button> | |
40 | + </subviews> | |
41 | + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | |
42 | + <constraints> | |
43 | + <constraint firstItem="ham-LV-cWN" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" constant="30" placeholder="YES" id="M0L-Jj-GBY"/> | |
44 | + <constraint firstItem="pl4-fa-Poj" firstAttribute="top" secondItem="ham-LV-cWN" secondAttribute="bottom" constant="10" id="SxH-63-d17"/> | |
45 | + <constraint firstItem="pl4-fa-Poj" firstAttribute="centerX" secondItem="ham-LV-cWN" secondAttribute="centerX" id="kYe-pD-TqE"/> | |
46 | + <constraint firstItem="pl4-fa-Poj" firstAttribute="width" secondItem="ham-LV-cWN" secondAttribute="width" multiplier="1/2" id="rS8-A5-BwH"/> | |
47 | + <constraint firstItem="ham-LV-cWN" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="x3v-m3-6de"/> | |
48 | + <constraint firstAttribute="trailing" secondItem="ham-LV-cWN" secondAttribute="trailing" constant="20" id="yUu-GA-PYo"/> | |
49 | + </constraints> | |
50 | + <point key="canvasLocation" x="32.5" y="67.5"/> | |
51 | + </view> | |
52 | + </objects> | |
53 | +</document> |