2

내 iPad-app에서 내보기 중 하나를 모달 양식 시트 스타일로 표시하려고합니다. 여기에 일부 코드입니다 :내 viewController가 올바르게 표시되지 않습니다.

-(void)present 
{ 
    SecondViewController *modal = [[SecondViewController alloc]init]; 
    modal.modalPresentationStyle = UIModalPresentationStyleFormSheet; 
    [self presentModalViewController:modal animated:YES]; 
} 

나는 스토리 보드를 사용하고, 나는 내가 보여주고 싶은보기에서 텍스트 뷰 및 도구 모음과 같은 물건을 뒀다. Identity Inspector에서 올바른 클래스를 설정하고 클래스 파일에서 퍼팅과 함께 표시되는 올바른 뷰인지 확인했습니다 NSLog(@"Right view");

void 현재를 호출하면보기가 나타나지만 어두운 흰색으로 만 표시됩니다 광장. Storyboard의 내 콘텐츠는 여기에 없으며,보기의 배경색과 textView를 변경하여 무언가가 사각형 밖에 있는지 만 보았습니다.하지만 전부가 흰색이었습니다. 스토리 보드에서 만든 뷰를 사용하지 않는 것 같지만 정확한 클래스로 설정하고 NSLog를 호출하면 출력됩니다. Storyboard에서 어떤 방식 으로든 두 가지 뷰를 연결하지 않았지만 SecondViewController가 그냥 떠 다니는 것이므로 문제가 될 수 있습니까? -(void)present을 호출하는 단추는 프로그래밍 방식으로 만들어 지므로 Ctrl + 단추에도 끌 수 없습니다.

왜 내 수업에 빈 버전이 표시됩니까? 에서

답변

3

은 "신원 경위는"당신의 ViewController의 "스토리 보드 ID"를 설정 한 다음이처럼 제시 :

-(void)present 
{ 
    SecondViewController *modal = [self.storyboard instantiateViewControllerWithIdentifier:@"myStoryboardID"]; 
    modal.modalPresentationStyle = UIModalPresentationStyleFormSheet; 
    [self presentModalViewController:modal animated:YES]; 
} 

그리고 당신이 iOS6의, presentModalViewController:animated:가되지 않습니다를 사용하는 경우, 그래서 이것을 사용 :

-(void)present 
    { 
     SecondViewController *modal = [self.storyboard instantiateViewControllerWithIdentifier:@"myStoryboardID"]; 
     modal.modalPresentationStyle = UIModalPresentationStyleFormSheet; 
     [self presentViewController:modal animated:YES completion:nil]; 
    } 
1

귀하의 문제는 스토리 보드 작동 방법이 간단하지 때 이미 컨트롤러, 뷰를 배치, 프로그램은 본질적를 어디서 찾을 수 있는지 알 가정하고 있다는 점이다. 사용자가 나열한 코드는 보기 컨트롤러을 만들지 만 연결된 보기가 없으면 검은 색 사각형으로 표시됩니다.

은 딜레마를 해결하기위한 몇 가지 방법이있다 :

  • 뷰 컨트롤러의 SEGUE로 모달 전환을 추가, 이것은 가장 간단한 방법이 될 및 iOS 스토리 보드는 당신이 기대 것입니다 것입니다.
  • 스토리 보드의보기를 외부 .xib으로 이동하고 initWithNibName:bundle: 메서드를 호출하여보기 컨트롤러의보기로로드합니다. 뷰를 프로그래밍 방식으로로드하려는 경우 가장 적합한 솔루션입니다.
  • instantiateViewControllerWithIdentifier: 메서드를 사용하여 프로그래밍 방식으로 스토리 보드에서 뷰를로드합니다. 스토리 보드 디자인에 위배되므로이 개념이 바람직하지 않을 수 있습니다.

내가 원하는대로 정할 수 있습니다.