使用自带的push 返回 7.0以后支持手势滑动返回。
1.封装一个单独的类来保持用户登录信息 新建一个类
在.h文件中添加Singleton.h头文件 定义属性
再到.m文件中定义 single_implementation(LoginUser)
和导入NSString+Helper.h头文件
和 #define kXMPPUserNameKey @"xmppUserName"
#define kXMPPPasswordKey @"xmppPassword"
#define kXMPPHostNameKey @"xmppHostName"
判断isEmptyString是否空字符串,只需要返回(self.length ==0);
- (NSString *)loadStringFromDefaultsWithKey:(NSString *)key
{
NSString *str = [[NSUserDefaults standardUserDefaults] stringForKey:key];
return (str) ? str : @"";
}
- (NSString *)userName
{ return [self loadStringFromDefaultsWithKey:kXMPPUserNameKey];}
- (void)setUserName:(NSString *)userName
{ [userName saveToNSDefaultsWithKey:kXMPPUserNameKey];}
- (NSString *)password
{ return [self loadStringFromDefaultsWithKey:kXMPPPasswordKey];}
- (void)setPassword:(NSString *)password
{ [password saveToNSDefaultsWithKey:kXMPPPasswordKey];}
- (NSString *)hostName
{ return [self loadStringFromDefaultsWithKey:kXMPPHostNameKey];}
- (void)setHostName:(NSString *)hostName
{ [hostName saveToNSDefaultsWithKey:kXMPPHostNameKey];}
在.h文件中 定义myJIDName这个方法。
- (NSString *)myJIDName
{ return [NSString stringWithFormat:@"%@@%@", self.userName, self.hostName];}
2.在登录文件中导入刚新建的类。
在到登录和注册按钮下面 设置界面文本的初始值
_userNameText.text = [[LoginUser sharedLoginUser] userName];
_passwordText.text = [[LoginUser sharedLoginUser] password];
_hostNameText.text = [[LoginUser sharedLoginUser] hostName];
设置文本焦点。。(在文本框为空 自动当光框定位到文本框中)
if ([_userNameText.text isEmptyString]) {
[_userNameText becomeFirstResponder];
} else {
[_passwordText becomeFirstResponder];
}
// 2. 将用户登录信息写入系统偏好
[[LoginUser sharedLoginUser] setUserName:userName];
[[LoginUser sharedLoginUser] setPassword:password];
[[LoginUser sharedLoginUser] setHostName:hostName];