2012-08-24 2 views
0

내 응용 프로그램에서 UIPopoverController를 사용하려고했는데 시도 중이었습니다 this example. 문제는보기와 해당 컨트롤러의 컨트롤러가 코드에서 생성된다는 것입니다.기존 컨트롤러에서 UIPopoverController 만들기

UIViewController* popoverContent = [[UIViewController alloc] 
        init]; 
    UIView* popoverView = [[UIView alloc] 
        initWithFrame:CGRectMake(0, 0, 200, 300)]; 
    popoverView.backgroundColor = [UIColor greenColor]; 
    popoverContent.view = popoverView; 

팝업을 위해 xib 파일과 함께 기존 컨트롤러를 사용하고 싶습니다. 팝업을 기존 컨트롤러에 연결하려면 어떻게합니까? 그리고 컨트롤러의보기를 팝업의 크기와 일치시키기 위해 특별한 방법으로 생성해야합니까?

답변

1

기존 xib를 사용하려면 nitWithNibName:bundle: 메서드를 사용하여 viewController를 초기화하십시오. xib를 사용하여 초기화하면 viewController의 뷰 계층 구조가 인스턴스화됩니다. 당신이 초기화 할 때

UIViewController* popoverContent = [[UIViewController alloc] initWithNibName:@"yourXibName" bundle:nil]; 

보기를 크기에 대해 걱정하지 마십시오 - 뷰는 재산 contentSizeForViewInPopover가 설정되어있을 때 다음 줄에 어쨌든 인용 예제 코드에서 크기가 조정됩니다.

2

예를 수행 할 수 있습니다

MyUIViewController* content = [[MyUIViewController alloc] initWithNibName:@"myNib" bundle: nil]; 
    // additional initialization in loadView 

    UIPopoverController* aPopover = [[UIPopoverController alloc] 
            initWithContentViewController:content];