如何根据iphone SDK中网址的响应显示警报视图和操作?

时间:2011-11-30 14:05:35

标签: iphone uialertview

我有一个登录部分,用户可以使用他们的用户名和密码登录。应用程序中提供了一个创建帐户选项。

当用户名和密码成功验证时,url返回用户详细信息的数组,如果验证失败则会出现错误代码(错误404)。

我从网址得到了正确的回复,但我的需要是,当带有错误代码404的警报视图或响应时,它不应该导航到主页面。

我如何为此设定条件。我的代码是

 NSString *uname = _txtmemberId.text;

            NSString *pwd   = _txtpassword.text;

            NSString *urlVal = @"http:example&var1=";

            NSString *urlVal1 = [urlVal stringByAppendingString:uname];

            NSString *urlVal2 = [urlVal1 stringByAppendingString:@"&var2="];

            NSString *urlVal3 = [urlVal2 stringByAppendingString:pwd];



            NSString * encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(
                                                                                           NULL,
                                                                                           (CFStringRef)urlVal3,
                                                                                           NULL,
                                                                                           (CFStringRef)@"\n" "",

                                                                                           kCFStringEncodingUTF8 );


            NSURL *url = [NSURL URLWithString:encodedString];

            NSString *resultString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

            UIAlertView *loginalert = [[UIAlertView alloc] initWithTitle:@" Message" message:resultString delegate:self
                                                       cancelButtonTitle:@"OK" otherButtonTitles:nil];

            [loginalert show];

           [loginalert release];

            ParallelReadViewController *detailViewController = [[ParallelReadViewController alloc] initWithNibName:@"ParallelReadViewController" bundle:nil];

             //detailViewController.firstString = firstString;
             // ...
             // Pass the selected object to the new view controller.

             [self.navigationController pushViewController:detailViewController animated:YES];

             [detailViewController release];

如果登录不成功,它将不会导航到Parallelviewcontroller页面。结果字符串是我从url天气成功或不成功获得的字符串。 这该怎么做? 提前谢谢。

2 个答案:

答案 0 :(得分:0)

全局声明resultString。实现UIAlertView委托方法

       - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
    {
if(resultstring == 404)
{
    status = YES;   // declare globally
}
    }

设置检查条件以推送视图

if(status)
{
ParallelReadViewController *detailViewController = [[ParallelReadViewController alloc] initWithNibName:@"ParallelReadViewController" bundle:nil];

             //detailViewController.firstString = firstString;
             // ...
             // Pass the selected object to the new view controller.

             [self.navigationController pushViewController:detailViewController animated:YES];

             [detailViewController release];

}

希望这对你有用。

答案 1 :(得分:0)

1路> 你可以用字符串中的代码获取html文件,这样你就可以从prsing中获取错误..然后你可以检查错误信息并浏览你的页面。

 NSString *str = @"YOUR LINK";
    NSURL *url=[NSURL URLWithString:str];
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
    NSURLResponse *response;
    NSError *error; 
    NSData *urlData = nil;
    urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

    NSString *serverOutput = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];

    NSLog(@"%@",serverOutput);
    [request release];

2路> 您可以告诉您的Web服务开发人员对未成功登录做出响应,以便通过该响应您可以在if条件的帮助下轻松提供条件。