2012-10-25 6 views
0

이 질문의 제목을 지정하는 방법을 모르지만 문제가 있습니다. 지금까지 내 앱은 주로 테이블보기가있는 하나의 navigationcontroller에서 실행됩니다. 하지만 지금은 드롭 다운 설정 메뉴를 통합하려고하는데, 제대로 할 수 없습니다.내비게이션 컨트롤러/뷰 컨트롤러 관리

i'v 지금 수행 방법과는 changeController은 하나 개의 버튼에서 호출

작동합니다. ChangeController가 appdelegate에 있습니다.

- (void) ChangeController 
{ 
    self.window.backgroundColor = [UIColor blackColor]; 
    DropDownExample *e = [[DropDownExample alloc] initWithStyle:UITableViewStyleGrouped]; 
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:e]; 
    [e release]; 
    [self.window addSubview:self.navigationController.view]; 
    self.window.backgroundColor = [UIColor blackColor]; 
    [self.window makeKeyAndVisible]; 
} 

는 그러나이 방법은 consequances을 가지고 - 버튼을 누르면, 설정 메뉴가 즉시 나타납니다, 당신은 탐색 위의 바 (거기에 아무것도)를 통해 돌아갈 수있는 변화가 없습니다.

어떻게 이렇게 올바르게합니까 ?? 나는 이모를 처음 접했고, 어떻게하면 좋을지 전체적인 생각을 말해주세요. AppDelegate에

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    { 

     self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease 

]; 
    // Override point for customization after application launch. 
    self.window.backgroundColor = [UIColor whiteColor]; 

    TableViewController *tableVC = [[TableViewController alloc] initWithNibName:@"TableView" bundle:nil andType:CONTROLLER_TYPE_FIRST]; 
    UINavigationController *navC = [[UINavigationController alloc] initWithRootViewController:tableVC]; 
    self.navigationController = navC; 
    [tableVC release]; 
    [navC release]; 
    self.window.rootViewController = _navigationController; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 
+0

탐색 스택에 새 컨트롤러를 삽입 하시겠습니까 아니면 다른 탐색 컨트롤러로 시작 하시겠습니까? – mayuur

+0

흠, 솔직히 모르겠다. 나는 그들 사이의 전환이 평소와 같이 나타나기를 바란다. 나는 그것이 호출 된 뷰로 돌아갈 수있는 능력을 가지고있다. – Datenshi

답변

3

확인에서

Didfinishlaunchingwithoptions 방법은, 여기에 대답. 호출하는 버튼이있는 클래스와 동일한 클래스에 changeController 메서드를 작성하십시오. changeController

이 방법을 사용하십시오.

- (void) ChangeController 
{ 
    DropDownExample *e = [[DropDownExample alloc] initWithStyle:UITableViewStyleGrouped]; 
    [self.navigationController pushViewController:e animated:YES]; 
    [e release]; 
} 

원하는 것은 현재 스택 맨 위에 새로운 UIViewController를 삽입하는 것입니다. 기본적으로 상단에 탐색 모음이 있으면 기본으로 뒤로 Btn이 표시되어 해당 제어기가 팝업됩니다.

+0

그러나 navigationController에 접근하는 방법은 pushViewController에 어떻게해야 할까? – Datenshi

+0

'self.navigationController'는 네비게이션 컨트롤러에 대한 액세스를 제공합니다. Btw, AppDelegate에서 appDidFinishLaunching 메서드를 게시하십시오. 질문하신 방법이 – mayuur

+0

에 추가되었습니다. self.navigationController는 ButtonClass에서 찾을 수없는 속성을 제공합니다. 미안하지만 이것들이 기본이라면, 나는 objective-C와 ios 프로그래밍에서 5 일 밖에 안 남았습니다. 그것은 내가 익숙했던 Java와 다소 차이가 있습니다. – Datenshi

관련 문제