2012-07-08 4 views
0

그래서 내 응용 프로그램의 위임에 UINavigationController를 만들고 내 RootViewController 인스턴스로 초기화했습니다. UINavigationController가 앱 UIWindow의 하위보기로 추가되었습니다. (그 중요한 경우 내 RVC 사용자 정의 초기화가 있습니다.) 정보와UINavigationController는 다른보기 컨트롤러를 밀어 넣지 않습니까?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
       _window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

       _viewController = [[RootViewController alloc] initWithPath:@"/private/var/mobile/"]; 
       _viewController.title = @"mobile"; 

       UINavigationController *nav1 = [[[UINavigationController alloc] initWithRootViewController:_viewController] autorelease]; 

       //This part I'm not sure about as well 
       [_window addSubview:nav1.view]; 
       [_window makeKeyAndVisible]; 

    return 0; 
    } 

, 정말 같은 jQuery과에서 탐색 스택에 RVC의 다른 인스턴스를 추진하기 위해 노력하고있어 :

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
       //I've tried it without the if statement as well 
       if(indexPath.section == 0){ 
         RootViewController *detailView = [[RootViewController alloc] initWithPath:launchDirectory]; 
         detailView.title = relativeDirectory; 
         [self.navigationController pushViewController:detailView animated:YES]; 

또 다른 메모로, 내 RVC tableview의 데이터 소스와 델리게이트가 "self"로 설정되었습니다.

제 질문은 : 테이블에서 행을 선택해도보기가 동일하게 유지되는 이유는 무엇입니까? 테이블이 새로운 테이블로 이동하지 않으며 행을 선택한 후에도 동일한 셀 내용이 표시됩니다. 즉, 아무 일도 일어나지 않습니다 ...

어떤 도움을 주셔서 감사합니다.

답변

1

내비게이션 컨트롤러가 nil 일 가능성이 높습니다. 즉, -autorelease이 너무 많습니다. 일반적으로 탐색 컨트롤러는 대리자의 dealloc 메서드가 호출 될 때까지 유지되므로 거기에서 놓습니다.

+0

setRootViewController가 내 UIWindow 클래스에 없습니다. 호환성을 위해 SDK 3 btw를 사용하고 있습니다. –

+0

그런 다음 첫 번째 부분을 무시하십시오. 두 번째 부분은 여전히 ​​사실입니다. – CodaFi

+0

하지만 새 인스턴스입니다. 새로운 변수. 그래서 사용자 정의 이니셜 라이저를 만들었습니다. 사용자 정의 초기화 프로그램은 테이블이 채워지는 배열을 만듭니다. 두 번째 RVC 인스턴스에는 첫 번째 인스턴스와 다른 배열이 있습니다. 그리고 나는 같은 클래스의 다른 인스턴스를 푸시 할 수 있다고 읽었습니다. 여러 UIAlertViews를 사용하는 것과 같습니다. UIViewController도 다릅니다. 이 이론을 테스트하기 위해 RVC 클래스와 동일한 DetailView 클래스를 만들었습니다. 여전히 상위 뷰 컨트롤러 (RVC)에서 DetailView 클래스를 푸시 할 수 없습니다. –

관련 문제