2013-02-13 1 views
0

제출 단추가있는 사용자 로그인 페이지가 있습니다. 로그인 성공시 다음보기로 이동합니다.이 경우 웹 서비스를 호출합니다 (백엔드 DB의 데이터 유효성을 검사합니다) 성공 또는 실패에 따라 true 또는 false를 반환합니다.이 작업은 정상적으로 작동합니다.SOAP 메시지 값에 따라 다음보기 표시

-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { 
    if (elementFound) { 
     soapResults = [string boolValue]; 
     //NSLog(@"soapResultss = %@",soapResults); 

    } 
    if (soapResults) 
    { 
     x = 1; // x is 1 if username and password are correct. 
    } 
    else 
    { 
     x = 0;//x is 0 if username and password are incorrect 
    } 
} 

평균 동안 방법 내가 "를 클릭 제출 버튼"내이 같은 다음 뷰를 호출하려고 해요 (성공) :

을 그것이 내가 다음과 같은 NSXMLParser를 사용하여 값을 얻을 수있어,이다
if(x==0) 
    { 

    } 
    else if(x==1) 
    { 
     [self.navigationController pushViewController:self.viewController animated:YES]; 
    } 

하지만 문제는 컨트롤이 "else if"부분에있는 "submit button click"으로 돌아 오지 않는다는 것입니다. 그리고 이것이 올바른 방법이 아닌 것 같습니다. 올바른 것이 무엇입니까? 이 일을하는 방법? 제발 제안 해. 고마워. 당신은 뷰 컨트롤러 객체와

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

사용

[self.navigationController pushViewController:viewController animated:YES]; 
+0

수단 "컨트롤이 다시 오지 않아"무엇을 명확히하십시오 작업 방법에

-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { if (elementFound) { soapResults = [string boolValue]; //NSLog(@"soapResultss = %@",soapResults); } if (soapResults) { receivedSoapResult = kReceivedCorrectData; } else { receivedSoapResult = kReceivedIncorrectData;; } } 

을 사용했다. – trojanfoe

+0

업데이트 된 질문. 감사합니다. – bapi

+0

원본보기 컨트롤러를 대리자 개체로 사용하여 밀어 넣기보기 컨트롤러에서 사용자 지정 위임 프로토콜을 만들어야합니다. 이것은 팝되었을 때 상태를 원래보기 컨트롤러로 되돌리기 위해 사용됩니다. 참조 : http://stackoverflow.com/questions/11632043/use-of-delegates-to-communicate-between-view-controllers – trojanfoe

답변

0

당신은 코드의 당신이 줄을 확인 이 경우에는 TRUE/FALSE를 사용하지 마십시오 ..

enum 데이터 유형이 유효합니다.

0 방법에 .H 파일

enum { 
    kReceivingSoapData, 
    kReceivedIncorrectData, 
    kReceivedCorrectData 

}receivedSoapResult; 

@interface ViewController : UIViewController{ 
..... 
} 

에서

if(receivedSoapResult == kReceivedIncorrectData) 
    { 
// incorrect uName and password received 
    } 
    else if(receivedSoapResult == kReceivedCorrectData) 
    { 
     //correct password received 
     [self.navigationController pushViewController:self.viewController animated:YES]; 
    } 
else{ 
// still receiving data 

} 
-1

가 좋아는 것처럼 보이는 코드 (당신의 ViewController의 객체)이 라인을 자체를 사용하는 이유

+0

이'enum'은'BOOL'에서 어떻게 향상됩니까? 당신은 어쨌든 2 개의 값만 사용합니다. – trojanfoe

+0

(x == 0)은 두 개의 조건을 생성합니다. 첫 번째로 응답이 아직 수신되지 않았거나 공진이 수신 된 경우 FALSE입니다. 이전 조건은 enum이 사용 된 경우 처리됩니다. – AppleDelegate

+0

'receivedSoapResult'를'kReceivingSoapData'에 초기화하는 것을 보여주지 않으므로 사용 된 것이 확실하지 않습니다. 또한 올바른 문제를 해결할 수도 없습니다. 그의 문제는보기 컨트롤러가 "다시 버튼 클릭을 제출하지 않음"입니다. – trojanfoe