登录后IOS应用程序切换视图
我正在学习用Xcode 5开发IOS。该应用程序使用一个主细节模板,它是从我用PHP编写的一个简单API填充的 我希望用户登录该应用程序,以便该应用程序可以代表用户向API发出请求。我将解释我设置了什么(这可能是完全错误的): 我创建了一个登录视图,并将其作为初始视图。我的登录视图由名为LoginViewController的类控制,该类包含“logUserIn”方法。当按下视图中的“登录”按钮时,此方法向API发送post请求以检查用户的凭据,然后我的应用程序读取响应以查看它们是否有效。这就是我被困的地方 在确定我拥有一组有效的凭据后,我想做两件事:登录后IOS应用程序切换视图,ios,iphone,objective-c,Ios,Iphone,Objective C,我正在学习用Xcode 5开发IOS。该应用程序使用一个主细节模板,它是从我用PHP编写的一个简单API填充的 我希望用户登录该应用程序,以便该应用程序可以代表用户向API发出请求。我将解释我设置了什么(这可能是完全错误的): 我创建了一个登录视图,并将其作为初始视图。我的登录视图由名为LoginViewController的类控制,该类包含“logUserIn”方法。当按下视图中的“登录”按钮时,此方法向API发送post请求以检查用户的凭据,然后我的应用程序读取响应以查看它们是否有效。这就是
#import "NTFYLoginViewController.h"
@interface NTFYLoginViewController ()
@end
@implementation NTFYLoginViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Attempt to read saved credentials
// Check they still work
// Switch to master-detail view if credentials exist and are valid
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)logUserIn:(id)sender
{
NSString *username = self.usernameField.text;
NSString *password = self.passwordField.text;
// The code here talks to the api and checks the credentials,
// i've swapped it for pseudo code below as the actual code
// is irrelevant
if(user is logged in)
{
// Save credentials
// Switch to master-detail view
}
// Display login error
}
@end
我想知道的是:
要返回到主视图控制器,可以采取几种方法。最简单的方法是,当应用程序启动时(或当它确定用户需要输入凭据时),以模式方式将登录视图控制器显示在主机的顶部。一旦用户输入凭据,并且您确定该用户已通过身份验证,请将登录视图控制器退回到主视图控制器。@MrBr保存凭据时,用户默认设置是个坏主意。用户默认值以未加密的形式保存在plist文件中。应该使用钥匙链。