如何实现 iOS 应用注册/登录页面

有一个 App,基于 StoryBoard 开发。我该如何给它添加登录、注册页面呢?

结合 V2EX的这篇帖子 还有 LeanCloud iOS SDK 示例程序 找到一些方法,记录一下分享给大家。

就拿我现在写的应用举例,它是基于 UITabBarController 的。我们希望在应用打开,没有用户登录的时候,弹出一个 modal 的 ViewController。

在 TabBar 的第一个 Tab 后面,添加一个 Modal 的 segue 到登录的 ViewController,Identifier 填 “Login”。

第一个 TabVC 我是这样写的:

- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(initData)
name:XYLoginNotification object:nil];
[self initData];
}

- (void)initData {
// 判断当前是否有用户登录 user
if (user) {
// init data...
} else {
[self performSegueWithIdentifier:@"Login" sender:nil];
}
}

登录 VC 的登录部分代码我是这样实现的:

- (void)doLogin {
// 调用异步的登录代码 user
[XY loginWithxxx block:^(xxx *user, NSError *error) {
if (user != nil) {
[[NSNotificationCenter defaultCenter] postNotificationName:XYLoginNotification object:nil];
[self dismissViewControllerAnimated:YES completion:nil];
} else {
// error handing
}
}];
}

原理就是 TabVC 监听 LoginVC 的登录事件,一旦有用户成功登录就 dismiss 登录的 VC。