2013-10-07 7 views
-1

좋아요. 제 기능 중 하나에서 문제가되는 것은 사용자가 Facebook을 통해 로그인 할 때입니다. 내 앱이 Facebook 앱 사용자 이름이 이미 앱 (Parse.com) 데이터베이스에 있는지 여부를 확인하고 있습니다.NSObject의 PresentViewController?

그렇다면보기 컨트롤러 (NSObject에있는 문제이므로 여기에서 문제가 발생 함)를 표시하고 페이스 북 사용자 이름을 작성하여 username 문자열을 구문 분석하십시오. 오류 내가 얻을 것은 없다 : 선택을위한 알려진 바 없음 클래스 메소드 'presentViewController : 애니메이션 : 완료'여기

내 코드입니다 :

PFQuery *query = [PFUser query]; //1 
[query whereKey:@"username" equalTo:me.username];//2 
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {//4 

    if (!error) { 
     NSLog(@"Successfully retrieved: %@", objects); 

     if ([objects count] > 0) 
     { 
      // LOOKING TO PRESENT VIEW CONTROLLER HERE? 
      // TRIED: 
      // [self presentViewController:[@"RegisterUsername" animated:YES completion:nil]; 


     } else { 
      [[PFUser currentUser] setObject:me.username forKey:@"username"]; 
     } 
    } else { 
     NSString *errorString = [[error userInfo] objectForKey:@"error"]; 
     NSLog(@"Error: %@", errorString); 
    } 
}]; 

이 때문에 NSObject를 상속, 그것은 내가 사용하는 것을 허용하지 않습니다 presentViewController. 여기서 무엇을해야할지 모르겠습니다. :-(이 뷰 컨트롤러는 앱을 계속하기 전에 사용자 이름을 설정하게되었습니다.이 코드는 현재 헤더의 로그인 함수에 있습니다. Facebook 용 Comms.h (NSOBJECT) iOS SDK

+0

제출 한 것 같습니다. 동시에 코드 형식을 수정하기위한 편집 작업을 할 수 있으며 마지막 편집 내용을 지울 수도 있습니다. 마지막 단락을 다시 확인할 수 있습니까? – Gray

+0

현재보기 컨트롤러에 대한 참조가 필요합니다. 어떤 경우에는'weak'' delegate' 속성을 설정하거나이 코드를 가지고있는 메소드에 대한 매개 변수로 만 사용하여 현재 뷰 컨트롤러에 대한 참조를이 객체에 전달할 수 있습니다. – Rob

답변

1

NSObject는 방법 presentViewController:. UIViewController 하위 클래스를 창에 추가 한 다음 표시해야합니다. dismissViewController의 완료 블록에서 부모를 창에서 제거해야합니다.

또는 위임 프로토콜을 생성하여 사용자 이름을 입력 한 다음 내부적으로 사용자 이름을 설정하거나 로그인보기를 표시 할 필요성을 UIViewController에 알립니다.

+0

iOS 개발을 처음 접하는 것이 무엇인지 알지 못합니다. 올바른 방향의 모든 예나 요점은 훌륭합니다. – Belvedare

+0

주석 처리 된 비트 외에도 현재 코드가 이미 멋지게 배치되어 있습니다. 당신이이 모든 것을 직접 타이핑했다면 나는 꽤 감명 받았다 (당신이 일반적으로 iOS에 익숙하지 않다면). 다른 한편으로, 만약 당신이 이것을 복사하여 붙여 넣고 다음 단계를 찾아 내려고한다면, 잠시 뒤로 물러나서 코드를 읽고 "읽으려고"노력하여 정확히 무슨 일이 일어나는지 확실히 이해하십시오 각 줄에. 나는 우리가 더 멀리 가기 전에 확실히하고 싶기 때문에 복사하고 붙여 넣을 것을 얻는 대신에 배우게 될 것을 진정으로 이해합니다. 우리는 갈 길이 멀다. – Justin

+0

네, 선생님, 제가 작성한대로 내 모든 코드가 무엇을하는지 이해합니다. 실제로 모든 것을 수정했지만 로그인 후 초기 viewController로드의 viewDidLoad에서 호출했습니다. 모든 일이 잘 진행되고있는 것처럼 보입니다. 이제는 UITabController를 올바르게 추가하는 방법을 알아 내려고합니다. -.- – Belvedare