2011-03-02 8 views
5

저는 ipad 앱 개발에있어 초보자입니다.팝 오버의 내비게이션 컨트롤러

저는 항목 목록이있는 테이블 뷰를 보여주는 팝 오버가있는 응용 프로그램을 만드는 데 관심이 있습니다. 그런 다음 항목을 선택하면 다른 항목 목록과 뒤로 가기 버튼으로 구성된 다른 표보기로보기가 이동합니다.

드릴 다운 할 레벨이 동적입니다.

문제를 해결하는 데 도움이되는 적절한 리소스를 안내해주십시오.

+0

정확히 내가 무엇을 찾고 있었습니까! :) – Breakpoint

답변

5

나는 이전에 해냈고 잘 작동합니다! 는 그냥 버튼이 기능 (아마도 UIBarButtonItem) 지정 :

UIPopoverController *popover; 
bool isPopoverOpen = false; 
-(void)openPopover{ 
    if(!isPopoverOpen){ 
     FirstViewController *firstViewCtrl = [[PartsViewCtrl alloc] init]; 
     UINavigationController *navbar = [[UINavigationController alloc] initWithRootViewController:firstViewCtrl]; 
     [firstViewCtrl release]; 
     navbar.contentSizeForViewInPopover = CGSizeMake(TABLE_WIDTH, TABLE_HEIGHT); 
     popover = [[UIPopoverController alloc] initWithContentViewController:navbar]; 
     [navbar release]; 
     popover.delegate = self; 
     popover.popoverContentSize = CGSizeMake(TABLE_WIDTH, TABLE_HEIGHT); 
     [popoverOnPartsView presentPopoverFromBarButtonItem:barButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
     isPopoverOpen = true; 
    }else{ 
     [popover dismissPopoverAnimated:YES]; 
     [popover release]; 
     isPopoverOpen = false; 
    } 
} 

를하고 jQuery과가 FirstViewController이 기능을 구현합니다

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
    SecondViewController *secondViewController = [[SecondViewController alloc] init]; 
    [self.navigationController pushViewController:secondViewController animated:YES]; 
    [secondViewController release]; 
} 

지금 당신이 너무, SecondViewController에 jQuery과를 추가 할 수 있습니다. 그리고이 시나리오를 다른 테이블에 사용하십시오!

나는 그것이 당신을 위해 일하기를 희망합니다!

4

popover를 생성 할 때 UINavigationController을 할당하고이를 사용하여 popover 자체 내의 뷰 계층 구조를 관리하면됩니다. 빠른 웹 검색을 통해 알 필요가있는 사항을 다루는 this tutorial이 발견되었습니다.

또한 Objective-C 및 iOS 개발 전반에 대한 속도를 높여야한다고 덧붙입니다. 실제로 무엇을하는지 이해하지 않고 인터넷에서 찾은 것을 맹목적으로 사용하지 마십시오.

+0

안녕하세요. 감사합니다. 일찌기 답장 해주세요. 나는 그것에 대해 연구 할 것이고 그것이 저에게 효과가 있다면 업데이트 할 것입니다. :) – user640918

2
Do the following steps 

1) 버튼의 동작에서 (즉, 버튼을 클릭하여 내가 테이블보기 및 항목의 여러 목록을 가지고의 ViewController 인 코드

여기 [PopOverContentViewController 쓰기) 나타납니다 이상의 팝업하는 이상 팝업이 도착했을 때

- (IBAction)callPopOver:(id)sender 
    { 


    UIButton *button = (UIButton*)sender; 
    PopOverContentViewController1 *popOverContent = [[PopOverContentViewController1  alloc]initWithNibName:@"PopOverContentViewController1" bundle:nil]; 

    UINavigationController *navbar = [[UINavigationController alloc] initWithRootViewController:popOverContent]; 

    navbar.contentSizeForViewInPopover = CGSizeMake(266, 200); 
    popover = [[UIPopoverController alloc] initWithContentViewController:navbar]; 
    popover.delegate = self; 
    [popover presentPopoverFromRect:CGRectMake(button.frame.size.width/2, button.frame.size.height/1, 1, 1) inView:button permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 
    [popover setPopoverContentSize:CGSizeMake(266, 200) animated:YES]; 
    [popUpContent release]; 


    }  

2) 현재 행의 클릭에 테이블보기를 변경] 표시되어야하는 것은 PopOverViewController.m

이 코드를 입력

[여기 PopOverViewController2 우리가 표시 될 다음 테이블 뷰를 가지고의 ViewController이다]

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
    PopOverViewController2 *secondViewController = [[PopOverViewController2 alloc] init]; 
    [self.navigationController pushViewController:secondViewController animated:YES]; 
    [secondViewController release]; 
    } 

3) 탐색 모두 볼 viewDidLoad에 다음 코드를 작성하는 동안 팝 오버의 크기의 변화를 피하기 컨트롤러 (예 : PopOverContentViewController1 및 PopOverContentViewController2)

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [self setContentSizeForViewInPopover:CGSizeMake(266, 200)]; 
} 
관련 문제