2014-05-25 5 views
2

tableView가있는 navigationController가 포함 된 간단한 iPad 팝업을 표시하려고합니다.UINavigationController 및 UITableView가있는 UIPopover : tableView 대리자가 호출되지 않았습니다.

popover -> navigation controller ->보기 컨트롤러 -> 테이블보기.

나는 세포 접촉에 내가 (같은 팝 오버 내에서) 서로의 ViewController를 밀어하려는 때문에있는 navigationController 필요합니까.

내비게이션 컨트롤러가 없으면 모든 것이 정상입니다. 그러나 navigationController 내부에 viewController를 넣 자마자 tableView가 응답하지 않습니다 (didSelectRow가 호출되지 않음). 내 대의원들에게 문제가 있다고 생각하지만, 해결할 수는 없습니다.

. 있는 navigationController 잘 응답

(나는 상단 표시 줄에있는 버튼을 칠 수있다). 셀에있는 단추가 제대로 응답합니다.

. 셀을 터치하여 누르고 있으면 강조 표시되지만 선택되지는 않습니다.

업데이트 : 나는 적어도 1 초 이상 셀을 누르고 있으면 릴리스 할 때 대리인이 호출된다는 것을 알았습니다. 어떤 그것보다 적게 그리고 결코 불리지 않는다. .. ???

ModalViewController* controllerWithTable = [[self storyboard] instantiateViewControllerWithIdentifier:identifier]; 

UINavigationController* navigationController = [[UINavigationController alloc] initWithRootViewController:controllerWithTable]; 

UIPopoverController* popover = [[UIPopoverController alloc] initWithContentViewController:navigationController]; 
popover.delegate = self; 

[popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

답변

0

확인 : https://stackoverflow.com/a/18159463/3562952

있는 tableView는 믿을 1-3 초 길게 후에 만 ​​응답하고, 응답 불가 아니었다.

탭을 캡처하는 상위보기에서 탭 응답기를 사용했습니다. 나는 지금 popover를 표시하고 해고에 다시 넣을 때 그것을 제거하고 있습니다.

것은 내가 잘못 증상 :

0

당신이 테이블보기를 표시하는 popoverController를 사용하는 경우, 당신은 테이블과 다른의 ViewController를 대신 네비게이션 컨트롤러를 포함 할 필요가 없습니다 : 여기

코드의 사용이다 다소 이런 식으로 사용 .I 팝 오버 컨트롤러 내부에 ..

이 Appdelegate.h 파일, 앱 위임에 //을 UIPopoverController위한 글로벌 참조를 확인보기 그냥 신발이 강한이 @ 속성을 (선언 비 구조적) UIPopoverController * popOverForTableView; 내가 거기에 대답을 발견하면 팝 오버보기 이것을 사용 표시하려는 컨트롤러 있음

,

TableViewCOntroller* popoverContent = [[TableViewCOntroller alloc] init]; 

    NSString *[email protected]"tableVC" 
    popoverContent =[[UIStoryboard storyboardWithName:@"Main" 
               bundle:nil] 
        instantiateViewControllerWithIdentifier:identifier]; 
    popoverContent.preferredContentSize = CGSizeMake(330, 280); 


    AppDelegate *appDelegate=(AppDelegate *)[[UIApplication sharedApplication]delegate]; 

    appDelegate. popOverForTableView = [[UIPopoverController alloc]initWithContentViewController:popoverContent]; 
    appDelegate.popOverForTableView.delegate = self; 
    appDelegate.popOverForTableView.backgroundColor=[UIColor blackColor]; 
    [appDelegate.popOverForTableView presentPopoverFromRect:self.date.frame inView:self.view permittedArrowDirections:(UIPopoverArrowDirectionUp) animated:YES]; 

이 도움이된다면 당신은 따라 ..., ... 참조를 해제 할 수 ..

+0

감사합니다, 나는 때문에 세포 타격에 나는 같은 팝 오버 내의 다른의 ViewController를 밀어 필요가 불구있는 navigationController 필요합니까 위해 인터넷 검색을했다. –

+0

내 질문을 편집하여 셀을 치는 것보다 자세히보기 컨트롤러를 누르는 대신 ..... presentmodalViewCOntroller 메서드를 사용해보십시오 – Geet

+0

해결할 수 없다면 내 해결책이 될 것입니다. 그러나 이것은 뷰가 오른쪽에서 오는 것이 UI 방식을 의미합니다. –