Iphone 情节提要和视图转换

Iphone 情节提要和视图转换,iphone,objective-c,ios,segue,login-system,Iphone,Objective C,Ios,Segue,Login System,我目前正在学习iPhone应用程序开发,我制作了一些在线教程来了解所有这些是如何工作的 我现在已经习惯了Objective-C的概念,我正在尝试基于两个视图构建第一个应用程序: 第一个视图将是“登录视图”,只是带有一种登录系统:一个登录字段和一个密码字段,以及一个“连接”按钮 第二个视图是应用程序的“主视图”,登录后将调用该视图 我做了一个推序列来建立登录视图和登录后调用的视图之间的关系。下面是故事板的外观: 实际上,我不知道如何调用一个函数来检查凭据是否正确,如果登录成功,如何切换到另一个视

我目前正在学习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键将interface builder从按钮拖动到下一个视图控制器。您还可以通过调用
performsguewithidentifier:sender:
在代码中(在iAction中)执行此操作

如果使用iAction,可以在那里验证数据


如果使用interface builder方法,则无法验证--
prepareforsgue:sender:
将太迟。无论如何,这里有一个可能的绊脚石——我记得,
UINavigationController
不会将
prepareForSegue:sender:
转发给它的孩子。您可以通过
UINavigationController
上的一个类别或通过子类化来缓解这一问题。

我目前使用ctrl键直接在IB中拖动来实现第一个解决方案。但是现在我真的不知道在登录视图的.m附件中把验证码放在哪里我不确定我是否理解你的问题。您需要在登录视图的视图控制器中实现
prepareforsgue:sender
。登录视图是否包含在样板UIViewController中?你需要创建你自己的UIViewController子类。我创建了这个子类,我编辑了我的代码,向你展示了我到目前为止所做的工作。。。但是在这里,视图一直在切换:(现在看起来还好,我不是在按钮上而是在视图本身上进行了切换,现在效果更好了:)酷!是的,当你接到
prepareforsgue:
的电话时,阻止它发生已经太晚了。另外,顺便说一句,我认为公认的惯例是为类名保留大写符号(
TFLogin
应该是
TFLogin
TFLogin
),但这确实是一件美观的事情。