2011-11-30 51 views
0

我有一個登錄部分,用戶可以用他們的用戶名和密碼登錄。應用中有一個創建帳戶選項。如何根據iPhone SDK中的url響應顯示警報視圖和操作?

當用戶名和密碼驗證成功時,url返回用戶詳細信息數組,如果驗證不成功,則會出現錯誤代碼(錯誤404)。

我從url得到了正確的響應,但我的需求是,當警報視圖帶有或帶有錯誤代碼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]; 

如果登錄unsucessfull也不會瀏覽到Parallelviewcontroller page.Resultstring是我從URL天氣SUCESSFUL或unsucessfull得到的字符串。 如何做到這一點? 在此先感謝。

回答

0

聲明resultString globally.Implement 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]; 

} 

希望這項工作妳。

+0

haii,謝謝你的回答,然後我不明白上面提到的代碼。我有一個名爲resultstring的字符串,我想檢查結果字符串,如果結果字符串是錯誤404,它將不能重定向到主頁page.result字符串是json url – ICoder

+0

我已經更新了答案。用錯誤消息創建一個常量並將該常量與結果字符串進行比較。我希望現在清楚。 – iamsult

+0

resultString和status都必須全局聲明。 – iamsult

0

1 way> 你可以用一個字符串得到這個代碼的html文件,這樣你就可以通過解析來獲取錯誤信息。然後你可以檢查錯誤信息並導航你的頁面。

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條件的幫助。

相關問題