1

새보기 컨트롤러를 기존 탐색 컨트롤러에 푸시하려고 할 때 문제가 있습니다.Popover에서 UIViewController를 UINavigationController로 푸시

UIBarButtonItem을 누를 때 UIPopoverController을 표시하고 해당 "드롭 다운"에서 연결된보기 컨트롤러를 "기본"탐색 컨트롤러로 밀어 넣을 메뉴 포인트를 선택하는 것이 좋습니다.

나는 모달을 제공하는 다음을 시도했다. 그러나 나는 그 견해를 밀고 싶다. enter image description here 모달 대신 푸시를 선택하면 결과는 다음과 같습니다.

나는 또한 나는 다음과 같은 코드를 시도했습니다있는합니다 (팝 오버에) 사용자 정의 UITableViewController 만드는 시도했습니다 enter image description here :

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    UINavigationController *dash = [storyboard instantiateViewControllerWithIdentifier:@"dash_nav"]; 
    UIViewController *students = [storyboard instantiateViewControllerWithIdentifier:@"students"]; 

    if (indexPath.row == 0) { 
     [dash pushViewController:students animated:YES]; 
//  [[dash navigationController] presentViewController:students animated:YES completion:nil]; 
    } 
    NSLog(@"%@", [dash title]); 
    NSLog(@"index = %i", indexPath.row); 
} 

내가 달성하기 위해 노력하고 무엇을 할 수있는 방법이 있나요를?

+0

두 가지 .. 처음에는 스토리 보드에서 어떻게이 작은 tableView를 만들었습니까? 둘째, 마스터 디테일을 사용하면 * push * 대신 * replace *를 사용할 수 있습니다. – Marc

답변

0

이 코드 :

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
UINavigationController *dash = [storyboard instantiateViewControllerWithIdentifier:@"dash_nav"]; 
UIViewController *students = [storyboard instantiateViewControllerWithIdentifier:@"students"]; 

너무 많은 새로운 인스턴스를 생성한다. 기존 스토리 보드 ( self. storyboard)와 기존 탐색 컨트롤러를 사용해야합니다. 네비게이션 컨트롤러는 테이블 뷰 컨트롤러 (스토리 보드에 필요한 정보가 없기 때문에 사용해야 함)로 전달되어야합니다. 우리는 이것을 originatingNavigationController이라고 부를 것이고, 테이블 뷰 컨트롤러에 새로운 @property이라고 부를 것입니다.

segue가 팝업을 표시하도록 트리거하는 경우 탐색 컨트롤러 참조를 대상보기 컨트롤러 (테이블보기)로 설정하십시오.

다음, didSelectRowAtIndexPath: 방법에 당신은 단지 students VC를 인스턴스화하고 밀어 :

UIViewController *students = [self.storyboard instantiateViewControllerWithIdentifier:@"students"]; 
[self.originatingNavigationController pushViewController:students animated:YES]; 

을 한 후 테이블 뷰 컨트롤러 자체 (의 팝 오버)를 기각한다.

+0

이것은 정확히 내가 필요한 것입니다! 감사. – mrjensen

관련 문제