我目前正在学习iPhone应用程序开发,并且制作了一些在线教程来了解所有这些工作原理。
我现在已经习惯了Objective-C的概念,并且试图基于两个视图构建第一个应用程序:
第一个视图将是“登录视图”,仅具有一种登录系统:一个登录字段和一个密码字段,以及一个“连接”按钮。
第二个视图是应用程序的“主视图”,在登录后将被调用。
我进行了推送,以建立“登录”视图与登录后调用的视图之间的关系。这是情节提要的样子:
我实际上不知道如何调用一个函数,该函数将检查凭据是否正确,如果登录成功,则切换到另一个视图。
有人可以给我解释一下,或者给我一些提示/教程吗?
这是我的LoginController的来源:
LoginController.h
@interface LoginController : UIViewController {
IBOutlet UITextField *TFLogin;
IBOutlet UITextField *TFPassword;
}
@property (strong, nonatomic) IBOutlet UITextField *TFLogin;
@property (strong, nonatomic) IBOutlet UITextField *TFPassword;
- (IBAction)Connect:(UIButton *)sender;
@end
LoginController.m
@implementation LoginController
@synthesize TFLogin;
@synthesize TFPassword;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (IBAction)Connect:(UIButton *)sender
{
if ([TFLogin.text isEqualToString:@"myLogin"] && [TFPassword.text isEqualToString:@"myPassword"]) {
[self performSegueWithIdentifier:@"LoginSegue" sender:sender];
NSLog(@"Connection OK");
}
else {
NSLog(@"Connection Not OK");
}
}
@end
谢谢 !
最佳答案
您有两种选择来触发序列。简单的方法是在界面生成器中从按钮将ctrl拖动到下一个视图控制器。您也可以通过调用performSegueWithIdentifier:sender:
在代码中(在IBAction中)完成此操作。
如果您使用IBAction,则可以在那里验证数据。
如果使用接口构建器方法,则无法验证-prepareForSegue:sender:
为时已晚。无论如何,这里可能存在绊脚石-正如我记得,UINavigationController
不会将prepareForSegue:sender:
转发给它的子级。您可以使用UINavigationController
上的类别或通过子类化来减轻这种情况。
关于iphone - Storyboard 和 View 过渡,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10041551/