본문 바로가기

iPhone

UIPopoverController 사용 예제

//팝오버와 네비게이션 그리고 붙일 뷰를 선언

UIPopoverController* _popoverCntrlr;

UINavigationController *nav;

SarchMemberViewController* sarchViewController;


//초기화 후에 붙여준다. 네비게이션을 붙여 줄 경우는 상단에 타이틀 바 부분이 생기며 바로 뷰를 붙이는경우는 뷰가 바로 붙는다. 

sarchViewController = [[SarchMemberViewController alloc]init];

 nav = [[UINavigationController alloc]initWithRootViewController:sarchViewController];

 _popoverCntrlr = [[UIPopoverController alloc]initWithContentViewController:nav];



//팝오버 실행

 CGRect arrow = CGRectMake(1,15,1,1); //화살표의 크기와 위치 세팅 

 [_popoverCntrlr setPopoverContentSize:CGSizeMake(327, 569)];  //크기를 정해줌 

    [_popoverCntrlr presentPopoverFromRect:arrow inView:sender permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES]; //팝오버 보이기


//팝오버 숨기기

 [_popoverCntrlr dismissPopoverAnimated:YES];



//팝오버를 사용시 쓸 수 있는 델리게이트 메서드

//팝오버가 닫힐 때 실행되는 메서드

-(void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController{

}

//화면 밖 영역을 터치했을때 호출되는 메서드

-(BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController{

    return YES;

}


팝오버에 버튼을 붙이고 싶을 경우 팝오버에 붙일 뷰 부분에 버튼을 선언한다.

#pragma mark - View lifecycle


- (void)viewDidLoad

{

    [super viewDidLoad];

    // Do any additional setup after loading the view from its nib.

    

    UIButton *trueBtn = [UIButton buttonWithType:UIButtonTypeCustom];

    trueBtn.titleLabel.font = [UIFont systemFontOfSize:15.0f];

    [trueBtn setTitle:@"완료" forState:UIControlStateNormal];

    [trueBtn setBackgroundImage:[UIImage imageNamed:@"btn_popup_right_nor.png"] forState:UIControlStateNormal];

    [trueBtn setBackgroundImage:[UIImage imageNamed:@"btn_popup_right_sel.png"] forState:UIControlStateSelected];

    

    [trueBtn addTarget:self action:@selector(trueBtnClick) forControlEvents:UIControlEventTouchUpInside];

    [trueBtn sizeToFit];

    UIBarButtonItem *trueBtnItem = [[[UIBarButtonItem alloc] initWithCustomView:trueBtn] autorelease];

    [self.navigationItem setRightBarButtonItem:trueBtnItem];

    

    

    UIButton *canselBtn = [UIButton buttonWithType:UIButtonTypeCustom];

    canselBtn.titleLabel.font = [UIFont systemFontOfSize:15.0f];

    [canselBtn setTitle:@"취소" forState:UIControlStateNormal];

    [canselBtn setBackgroundImage:[UIImage imageNamed:@"btn_popup_left_nor.png"] forState:UIControlStateNormal];

    [canselBtn setBackgroundImage:[UIImage imageNamed:@"btn_popup_left_sel.png"] forState:UIControlStateSelected];

    

    [canselBtn addTarget:self action:@selector(trueBtnFalse) forControlEvents:UIControlEventTouchUpInside];

    [canselBtn sizeToFit];

    UIBarButtonItem *canselBtnItem = [[[UIBarButtonItem alloc] initWithCustomView:canselBtn] autorelease];

    [self.navigationItem setLeftBarButtonItem:canselBtnItem];

    

}