【问题标题】:How to go from one view to another view in storyboard如何在情节提要中从一个视图转到另一个视图
【发布时间】:2013-04-11 10:11:29
【问题描述】:

我创建的登录页面包括(用户名、密码和登录按钮)

我想何时填写文本字段用户名和密码,如果正确的用户名和密码转到另一页,如果错误,请给我一个提醒。

这是我的代码:

#import "Detail.h"

@implementation ViewController
{
    NSString *name;
}
@synthesize Username,Password;

- (void)viewDidLoad
{
    [super viewDidLoad];
}


- (IBAction)Login:(id)sender {

    NSString *a = [[NSString alloc]initWithFormat:@"http://192.168.1.102/mamal/login.php?u=%@&p=%@",Username.text,Password.text];
    NSString *url = [[NSString alloc]initWithContentsOfURL:[NSURL URLWithString:a]];
    NSLog(@"%@",url);
    if ([url isEqualToString:@"0"]) //this is wrong user & password
    {
        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"ERROR" message:@"WRONG" delegate:nil cancelButtonTitle:@"Dissmis" otherButtonTitles: nil];
        [alert show];
    }
    else
    {
        name = @"Mohammad";
    }
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([name isEqualToString:@"Mohammad"] , [[segue identifier] isEqualToString:@"Segue"]) {
        Detail *det = segue.destinationViewController;
    }
}

但是没用!!!我只需要正确的用户名和密码进入下一页

【问题讨论】:

    标签: ios objective-c storyboard


    【解决方案1】:

    您必须进行无触发转场才能执行此操作。从情节提要中进行无触发转场,并在您的用户名和密码正确时触发它。

    要创建无触发转场,请从场景底部场景停靠栏中的包含视图控制器图标开始控制并拖动转场。像往常一样拖动到目标场景,然后选择转场类型。选择 segue,然后在检查器中选择一个 segue 标识符。

    然后调用方法[self performSegueWithIdentifier:@"Identifier" sender:nil]; 当你的条件为真时

    【讨论】:

    • 从情节提要中,不要在登录按钮上设置 segue。
    • FirstViewcontoller底部会有viewcontroller图标。从那里设置 segue 到另一个视图控制器
    【解决方案2】:

    如果您想使用 segue,我认为您错过了在设置名称的行之后实际执行 segue 的调用

    name = @"Mohammed"        
    [self performSegueWithIdentifier:@"mySegue" sender:self]
    

    “mySegue”是故事板中您的 segue 的标识符。

    然后,您可能希望向新的 View Controller 发送名称。

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
        if ([segue.identifier isEqualToString:@"mySegue"]) {
            Detail *det = segue.destinationViewController;
            det.name = name;
        }
    }
    

    【讨论】:

    • 我的朋友,这段代码是正确的,但是当我点击登录按钮错误的用户并通过下一页时
    • 我不要这个!!!我想什么时候用正确的用户点击登录按钮并通过下一页继续
    • 您必须将 performSegueWithIdentifier 行放在要转换到下一页的任何位置。
    【解决方案3】:

    这里的 AuditViewController 是 segue 名称

    你需要在故事板中这样调用类

    [self performSegueWithIdentifier:@"AuditViewController" sender:self];
    

    编辑

    检查条件

    - (IBAction)Login:(id)sender {
    
        NSString *a = [[NSString alloc]initWithFormat:@"http://192.168.1.102/mamal/login.php?u=%@&p=%@",Username.text,Password.text];
        NSString *url = [[NSString alloc]initWithContentsOfURL:[NSURL URLWithString:a]];
        NSLog(@"%@",url);
        if ([url isEqualToString:@"0"]) //this is wrong user & password
        {
            UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"ERROR" message:@"WRONG" delegate:nil cancelButtonTitle:@"Dissmis" otherButtonTitles: nil];
            [alert show];
        }
        else
        {
            name = @"Mohammad";
            if([name isEqualToString:@"Mohammad"])
                [self performSegueWithIdentifier:@"Segue" sender:self];
            //else
                //NSLog(@"Can not Login");
        }
    }
    

    prepareForSegue方法调用

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
        if ([[segue identifier] isEqualToString:@"Segue"]) 
        {
            Detail *det = segue.destinationViewController;
        }
    }
    

    【讨论】:

    • 我的朋友我运行了这段代码,但是当我填写错误的用户并通过并点击登录按钮时仍然会进入下一页
    • 是的,但同时您像正确的用户一样进行测试,然后导航,否则会发出警报
    • 对不起我的朋友我很困惑
    • 您可以在编辑部分看到代码。把它写在你的 .m 文件中。避免在 Edit 上方使用代码。
    • 我在故事板中有两个视图将 segue(模态)连接在一起
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多