1

基本的なログイン アプリケーションのサーバーからのメッセージが成功した後、ページに移動しようとしています。現在、成功したログを取得すると、そこにないビューコントローラーを探しているような黒い画面に移動します。ただし、私が行こうとしているクラスに関連付けられたビューコントローラーがあります。これまでの私のコードは次のとおりです

    if([serverOutput isEqualToString:@"Yes"])
    {
        NSLog(@"Yes there was a match");
        WelcomeScreenViewController *newview =[[WelcomeScreenViewController alloc] init];
        [self presentViewController:newview animated:YES completion:nil];
        UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:@"Congrats" message:@"You are authorized"
                                                              delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];


        [alertsuccess show];
       `}

ログインに成功した後、ようこそ画面に移動しないのはなぜですか? ウェルカムを rootcontroller にしてから、ログイン画面をプッシュする必要がありますか。if ステートメントを使用してプログラムでビュー コントローラーに移動できないのはなぜですか?

`- (IBAction)loginbuttonpressed:(id)sender {

//Trim white space off username/password
NSString *rawEmail = [_UIEmailTextField text];
NSString *rawPass = [_UIPasswordTextField text];
NSString *trimmedEmail = [rawEmail stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSString *trimmedPass = [rawPass stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

//Check if text field is empty
if([_UIEmailTextField.text length] > 0 && [_UIPasswordTextField.text length] > 0)
{
    NSString *post =[NSString stringWithFormat:@"userName=%@&userPassword=%@",trimmedEmail, trimmedPass];
    NSString *hostStr = @"http://server name?";
    hostStr = [hostStr stringByAppendingString:post];
    NSData *dataURL =  [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]];
    NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];
    if([serverOutput isEqualToString:@"Yes"])
    {
        NSLog(@"Yes there was a match");
        WelcomeScreenViewController *newview =[[WelcomeScreenViewController alloc] init];
        [self presentViewController:newview animated:YES completion:nil];
        UIAlertView *alertsuccess = [[UIAlertView alloc] initWithTitle:@"Congrats" message:@"You are authorized"
                                                              delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];`


    So all of this is run when you hit a log in button. I had it being a seque when you click log in but then if the log in fails it still logs in. 
4

1 に答える 1

2

セグエの前に値をテストするときは、UIButton からではなく、viewController からセグエを実装する必要があります。次に、performSegueWithIdentifier を使用して、コントローラーに追加したセグエを実行します。次に、prepareForSegue でさまざまなセグエをテストし、destinationViewController に渡すことができます。

プログラムで Segue を実行し、パラメーターを宛先ビューに渡す

于 2013-04-22T20:52:46.743 に答える