2014-05-13 2 views
0

iPad보기 I ​​Container View를 추가합니다. Xcode를 추가하면 자동으로 새보기가 만들어지고 embed segue로 기본보기에 연결됩니다. 이제 코드에서 프로그래밍 방식으로이 새 뷰를 호출하려고하는데이 작업을 수행 할 수 없습니다.이 양식을 팝업으로 표시해야합니다.컨테이너 뷰 popover view 프로그래밍 방식으로

PaymentCashController *newPopup = [self.storyboard instantiateViewControllerWithIdentifier:@"PaymentCash"]; 
[self presentViewController:newPopup animated:YES completion:nil]; 

이 작품 있지만 전체 화면의 새로운보기를 표시하지만 팝 오버와 함께 게재해야합니다

나는보십시오. 나는 많은 것을 시도하고 모든 (작동하지

내가이보십시오.

[self performSegueWithIdentifier:@"PaymentCash" sender:nil]; 

을하지만이 시도 예외 SIGABRT에게

가 나타납니다

PaymentCashController *newPopup = [self.storyboard instantiateViewControllerWithIdentifier:@"PaymentCash"]; 

    UIPopoverController *popoverController = [[UIPopoverController alloc] initWithContentViewController:newPopup]; 

    popoverController.popoverContentSize = CGSizeMake(500, 400); 

    CGRect popoverStartFrame = {50, 500, 100, 100};//Set the frame that you would like your popover to present from. 
    [popoverController presentPopoverFromRect: popoverStartFrame inView:self.view permittedArrowDirections: UIPopoverArrowDirectionLeft | UIPopoverArrowDirectionUp animated:YES]; 

예외 SIGABRT 수신

시험해보기 :

PaymentCashController *newPopup = [PaymentCashController new]; 

    UIPopoverController *popoverController = [[UIPopoverController alloc] initWithContentViewController:newPopup]; 

    popoverController = [[UIPopoverController alloc] initWithContentViewController:newPopup]; 

    [popoverController presentPopoverFromRect:CGRectMake(44, 6, 111, 111) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 

같은 SIGABRT는

답변

0

당신은 당신의 뷰 컨트롤러와 UIPopoverController을 생성하고 아래와 같이 팝 오버를 제시 할 필요가있다.

PaymentCashController *newPopup = [self.storyboard instantiateViewControllerWithIdentifier:@"PaymentCash"]; 

UIPopoverController *popoverController = [[UIPopoverController alloc] newPopup]; 
popover.delegate = self; 
//set custom size you want for popover 
popover.popoverContentSize = CGSizeMake(500, 400); 
CGRect popoverStartFrame = {50, 500, 100, 100};//Set the frame that you would like your popover to present from. 
[popover presentPopoverFromRect: popoverStartFrame inView:self.view permittedArrowDirections: UIPopoverArrowDirectionLeft | UIPopoverArrowDirectionUp animated:YES]; 
+0

이 오류가 있습니다 - UIPopoverController * popoverController = [[UIPopoverController alloc] newPopup]; 표시되는 @interface UIPopoverController는 셀렉터 newPopup을 선언합니다. –

+0

위 코드를 사용하는 클래스에 PaymentCashController 클래스의 헤더 파일을 포함해야합니다. –

+0

또한 newPopup이 올바르게 초기화되고 nil이 아닌지 확인해야합니다. 초기화되지 않은 경우 "PaymentCash"를 전달한 식별자가 PaymentCashController의 스토리 보드에 설정된 것과 같지 않을 수 있습니다. –

0

이제 모든 작업 많은 실험과 :

  1. 제거 스토리 보드 내 팝 오버보기에 대한 모든 SEGUE. 그것을 자유형으로 만들고 크기를 변경하십시오.
  2. 내 주요보기 새 속성에

    @property (비 원자 강한) UIPopoverController * 팝 오버를 추가;

  3. 스토리 보드 ID를 내 Popover View로 설정하십시오. "PaymentCash"를 클릭하십시오. 내 팝 오버보기가이 코드를 추가 보여 내보기에 대한 조치에서

  4. :

    PaymentCashController *PopoverView = [self.storyboard instantiateViewControllerWithIdentifier:@"PaymentCash"]; 
    self.popOver =[[UIPopoverController alloc] initWithContentViewController:PopoverView]; 
    CGRect popoverStartFrame = {1,500,200,1}; 
    [self.popOver presentPopoverFromRect:popoverStartFrame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES]; 
    

만 한이 후 문제없이 올바른 위치에서 팝 오버보기 쇼 그러나 이것은 또 다른 질문입니다.

관련 문제